├── .browserslistrc ├── .cmds ├── .docker ├── dev │ ├── mail │ │ ├── config │ │ │ └── dovecot-quotas.cf │ │ └── setup.sh │ ├── nginx │ │ ├── default.conf │ │ └── ssl.sh │ └── php │ │ ├── Dockerfile │ │ └── snappymail.ini └── release │ ├── Dockerfile │ ├── files │ ├── entrypoint.sh │ ├── etc │ │ └── nginx │ │ │ └── nginx.conf │ ├── listener.php │ ├── snappymail │ │ └── include.php │ ├── supervisor.conf │ └── usr │ │ └── local │ │ └── etc │ │ └── php-fpm.d │ │ └── php-fpm.conf │ └── test │ ├── build_and_test.sh │ ├── config.yaml │ └── test.sh ├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── docker-pr.yml │ └── docker.yml ├── .gitignore ├── .gitmodules ├── .htaccess ├── .prettierignore ├── .prettierrc ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── SECURITY.md ├── _include.php ├── build ├── SnappyMail.asc ├── arch │ ├── PKGBUILD │ ├── snappymail.sysusers │ └── snappymail.tmpfiles ├── cpanel.php ├── deb.php ├── deb │ └── DEBIAN │ │ ├── control │ │ └── postinst ├── nextcloud.php ├── owncloud.php ├── phpseclib │ ├── Crypt │ │ ├── Hash.php │ │ ├── RSA.php │ │ └── Random.php │ ├── File │ │ ├── ANSI.php │ │ ├── ASN1.php │ │ ├── ASN1 │ │ │ └── Element.php │ │ └── X509.php │ ├── Math │ │ └── BigInteger.php │ └── openssl.cnf ├── plugins.php ├── test_connection.php └── test_ssl_connection.php ├── cli ├── release.php └── upgrade.sh ├── data ├── .htaccess ├── README.md └── VERSION ├── dev ├── App │ ├── Abstract.js │ ├── Admin.js │ └── User.js ├── Common │ ├── Audio.js │ ├── Cache.js │ ├── Consts.js │ ├── Enums.js │ ├── EnumsUser.js │ ├── File.js │ ├── Folders.js │ ├── Fullscreen.js │ ├── Globals.js │ ├── Html.js │ ├── HtmlEditor.js │ ├── Links.js │ ├── Plugins.js │ ├── Selector.js │ ├── Translator.js │ ├── Utils.js │ └── UtilsUser.js ├── Component │ ├── Checkbox.js │ ├── EmailAddresses.js │ └── Select.js ├── DAV │ ├── JCard.js │ └── VCardProperty.js ├── External │ ├── SquireUI.js │ ├── User │ │ └── ko.js │ └── ko.js ├── Knoin │ ├── AbstractModel.js │ ├── AbstractScreen.js │ ├── AbstractViews.js │ └── Knoin.js ├── Mime │ ├── Address.js │ ├── Encoding.js │ ├── Parser.js │ └── Utils.js ├── Model │ ├── AbstractCollection.js │ ├── Account.js │ ├── Attachment.js │ ├── AttachmentCollection.js │ ├── ComposeAttachment.js │ ├── Contact.js │ ├── Email.js │ ├── EmailCollection.js │ ├── FolderCollection.js │ ├── Identity.js │ ├── Message.js │ ├── MessageCollection.js │ ├── MimeHeader.js │ ├── MimeHeaderAutocrypt.js │ └── MimeHeaderCollection.js ├── Remote │ ├── AbstractFetch.js │ ├── Admin │ │ └── Fetch.js │ └── User │ │ └── Fetch.js ├── Screen │ ├── AbstractSettings.js │ ├── Admin │ │ ├── Login.js │ │ └── Settings.js │ └── User │ │ ├── Login.js │ │ ├── MailBox.js │ │ └── Settings.js ├── Settings │ ├── Admin │ │ ├── About.js │ │ ├── Branding.js │ │ ├── Config.js │ │ ├── Contacts.js │ │ ├── Domains.js │ │ ├── General.js │ │ ├── Login.js │ │ ├── Packages.js │ │ └── Security.js │ └── User │ │ ├── Accounts.js │ │ ├── Contacts.js │ │ ├── Filters.js │ │ ├── Folders.js │ │ ├── General.js │ │ ├── Security.js │ │ └── Themes.js ├── Sieve │ ├── Commands.js │ ├── Commands │ │ ├── Actions.js │ │ ├── Controls.js │ │ └── Tests.js │ ├── Extensions │ │ ├── rfc5173.js │ │ ├── rfc5183.js │ │ ├── rfc5229.js │ │ ├── rfc5230.js │ │ ├── rfc5232.js │ │ ├── rfc5235.js │ │ ├── rfc5260.js │ │ ├── rfc5293.js │ │ ├── rfc5429.js │ │ ├── rfc5435.js │ │ ├── rfc5463.js │ │ ├── rfc5490.js │ │ ├── rfc5703.js │ │ ├── rfc6134.js │ │ └── rfc6609.js │ ├── Grammar.js │ ├── Model │ │ ├── Abstract.js │ │ ├── Filter.js │ │ ├── FilterCondition.js │ │ └── Script.js │ ├── Parser.js │ ├── README.md │ ├── RegEx.js │ ├── Utils.js │ └── View │ │ ├── Filter.js │ │ └── Script.js ├── Storage │ ├── Client.js │ └── Passphrases.js ├── Stores │ ├── Admin │ │ ├── Domain.js │ │ └── Package.js │ ├── Language.js │ ├── Theme.js │ └── User │ │ ├── Account.js │ │ ├── App.js │ │ ├── Contact.js │ │ ├── Folder.js │ │ ├── GnuPG.js │ │ ├── Identity.js │ │ ├── Mailvelope.js │ │ ├── Message.js │ │ ├── Messagelist.js │ │ ├── Notification.js │ │ ├── OpenPGP.js │ │ ├── Pgp.js │ │ ├── SMime.js │ │ ├── Settings.js │ │ └── Sieve.js ├── Styles │ ├── @Admin.less │ ├── @Boot.css │ ├── @Main.less │ ├── Admin │ │ ├── About.less │ │ ├── Branding.less │ │ ├── Config.less │ │ ├── Domain.less │ │ ├── Domains.less │ │ ├── General.less │ │ ├── Layout.less │ │ ├── Packages.less │ │ └── Plugin.less │ ├── Ask.less │ ├── Components.less │ ├── Languages.less │ ├── Login.less │ ├── Main.less │ ├── Ui.less │ ├── User │ │ ├── AdvancedSearch.less │ │ ├── Animations.less │ │ ├── Attachments.less │ │ ├── Compose.less │ │ ├── Contacts.less │ │ ├── EmailAddresses.less │ │ ├── Filter.less │ │ ├── FolderList.less │ │ ├── Identity.less │ │ ├── Layout.less │ │ ├── MessageFlags.less │ │ ├── MessageList.less │ │ ├── MessageView.less │ │ ├── OpenPgpKey.less │ │ ├── Settings.less │ │ ├── SettingsAccounts.less │ │ ├── SettingsFilters.less │ │ ├── SettingsFolders.less │ │ ├── SettingsGeneral.less │ │ ├── SettingsSecurity.less │ │ ├── SettingsThemes.less │ │ ├── Shortcuts.less │ │ ├── SquireUI.less │ │ └── SystemDropDown.less │ ├── _End.less │ ├── _FontasticToBoot.less │ ├── _Values.less │ └── rtl.less ├── View │ ├── Admin │ │ ├── Login.js │ │ └── Settings │ │ │ ├── Menu.js │ │ │ └── Pane.js │ ├── Popup │ │ ├── Account.js │ │ ├── AdvancedSearch.js │ │ ├── Ask.js │ │ ├── Compose.js │ │ ├── Contacts.js │ │ ├── Domain.js │ │ ├── DomainAlias.js │ │ ├── Folder.js │ │ ├── FolderAcl.js │ │ ├── FolderClear.js │ │ ├── FolderCreate.js │ │ ├── FolderSystem.js │ │ ├── Identity.js │ │ ├── KeyboardShortcutsHelp.js │ │ ├── Languages.js │ │ ├── OpenPgpGenerate.js │ │ ├── OpenPgpImport.js │ │ ├── OpenPgpKey.js │ │ ├── Plugin.js │ │ └── SMimeImport.js │ └── User │ │ ├── Login.js │ │ ├── MailBox │ │ ├── FolderList.js │ │ ├── MessageList.js │ │ └── MessageView.js │ │ ├── Settings │ │ ├── Menu.js │ │ └── Pane.js │ │ └── SystemDropDown.js ├── admin.js ├── app.js ├── boot.js ├── bootstrap.js ├── dragdropgecko.js ├── prototype.js ├── serviceworker.js ├── shortcuts.js └── sieve.js ├── docker-compose.yml ├── examples ├── IMAP.md ├── crypto │ ├── 3140898548F06E97-private.asc │ ├── 3140898548F06E97-public.asc │ ├── 5F3A5CDC09AD8AE3-private.asc │ ├── 5F3A5CDC09AD8AE3-public.asc │ ├── A0B428E12402D875-private.asc │ ├── A0B428E12402D875-public.asc │ ├── smime.crt │ └── smime.key ├── docker │ ├── Docker.md │ ├── docker-compose.mysql.yml │ ├── docker-compose.postgres.yml │ ├── docker-compose.simple.yml │ └── docker-compose.traefik.yml └── eml │ ├── json-ld.eml │ ├── mms-img.eml │ ├── mms-text.eml │ ├── tnef.eml │ └── tnef2.eml ├── fail2ban ├── README.md ├── filter.d │ ├── snappymail-fpm-journal.conf │ └── snappymail-log.conf └── jail.d │ ├── snappymail-fpm-journal.conf │ └── snappymail-log.conf ├── gulpfile.js ├── index.php ├── integrations ├── cloudron │ ├── DESCRIPTION.md │ └── Dockerfile ├── cpanel │ ├── usr │ │ └── local │ │ │ └── cpanel │ │ │ └── base │ │ │ └── 3rdparty │ │ │ └── snappymail │ │ │ └── include.php │ └── var │ │ └── cpanel │ │ └── webmail │ │ └── webmail_snappymail.yaml ├── cyberpanel │ └── install.php ├── hestiacp │ ├── bin │ │ └── v-add-sys-snappymail │ └── install │ │ └── deb │ │ └── snappymail │ │ └── install.php ├── nextcloud │ ├── screenshots │ │ ├── help_a1.png │ │ ├── help_a2.png │ │ ├── inbox.jpg │ │ └── nextcloud-admin.png │ └── snappymail │ │ ├── INSTALL │ │ ├── README.md │ │ ├── app │ │ ├── include.php │ │ └── themes │ │ │ └── Nextcloud │ │ │ ├── images │ │ │ └── preview.png │ │ │ └── styles.css │ │ ├── appinfo │ │ ├── info.xml │ │ └── routes.php │ │ ├── css │ │ ├── embed.css │ │ └── style.css │ │ ├── img │ │ ├── favicon-mask.svg │ │ ├── favicon-touch.png │ │ ├── favicon.png │ │ ├── logo-64x64.png │ │ └── logo-white-64x64.png │ │ ├── js │ │ └── snappymail.js │ │ ├── l10n │ │ ├── af.js │ │ ├── af.json │ │ ├── an.js │ │ ├── an.json │ │ ├── ar.js │ │ ├── ar.json │ │ ├── ast.js │ │ ├── ast.json │ │ ├── az.js │ │ ├── az.json │ │ ├── be.js │ │ ├── be.json │ │ ├── bg.js │ │ ├── bg.json │ │ ├── bn_BD.js │ │ ├── bn_BD.json │ │ ├── br.js │ │ ├── br.json │ │ ├── bs.js │ │ ├── bs.json │ │ ├── ca.js │ │ ├── ca.json │ │ ├── cs.js │ │ ├── cs.json │ │ ├── cy_GB.js │ │ ├── cy_GB.json │ │ ├── da.js │ │ ├── da.json │ │ ├── de.js │ │ ├── de.json │ │ ├── de_DE.js │ │ ├── de_DE.json │ │ ├── el.js │ │ ├── el.json │ │ ├── en_GB.js │ │ ├── en_GB.json │ │ ├── eo.js │ │ ├── eo.json │ │ ├── es.js │ │ ├── es.json │ │ ├── es_419.js │ │ ├── es_419.json │ │ ├── es_AR.js │ │ ├── es_AR.json │ │ ├── es_CL.js │ │ ├── es_CL.json │ │ ├── es_CO.js │ │ ├── es_CO.json │ │ ├── es_CR.js │ │ ├── es_CR.json │ │ ├── es_DO.js │ │ ├── es_DO.json │ │ ├── es_EC.js │ │ ├── es_EC.json │ │ ├── es_GT.js │ │ ├── es_GT.json │ │ ├── es_HN.js │ │ ├── es_HN.json │ │ ├── es_MX.js │ │ ├── es_MX.json │ │ ├── es_NI.js │ │ ├── es_NI.json │ │ ├── es_PA.js │ │ ├── es_PA.json │ │ ├── es_PE.js │ │ ├── es_PE.json │ │ ├── es_PR.js │ │ ├── es_PR.json │ │ ├── es_PY.js │ │ ├── es_PY.json │ │ ├── es_SV.js │ │ ├── es_SV.json │ │ ├── es_UY.js │ │ ├── es_UY.json │ │ ├── et_EE.js │ │ ├── et_EE.json │ │ ├── eu.js │ │ ├── eu.json │ │ ├── fa.js │ │ ├── fa.json │ │ ├── fi.js │ │ ├── fi.json │ │ ├── fo.js │ │ ├── fo.json │ │ ├── fr.js │ │ ├── fr.json │ │ ├── gd.js │ │ ├── gd.json │ │ ├── gl.js │ │ ├── gl.json │ │ ├── he.js │ │ ├── he.json │ │ ├── hr.js │ │ ├── hr.json │ │ ├── hu.js │ │ ├── hu.json │ │ ├── hy.js │ │ ├── hy.json │ │ ├── ia.js │ │ ├── ia.json │ │ ├── id.js │ │ ├── id.json │ │ ├── is.js │ │ ├── is.json │ │ ├── it.js │ │ ├── it.json │ │ ├── ja.js │ │ ├── ja.json │ │ ├── ka.js │ │ ├── ka.json │ │ ├── ka_GE.js │ │ ├── ka_GE.json │ │ ├── kab.js │ │ ├── kab.json │ │ ├── km.js │ │ ├── km.json │ │ ├── kn.js │ │ ├── kn.json │ │ ├── ko.js │ │ ├── ko.json │ │ ├── lb.js │ │ ├── lb.json │ │ ├── lo.js │ │ ├── lo.json │ │ ├── lt_LT.js │ │ ├── lt_LT.json │ │ ├── lv.js │ │ ├── lv.json │ │ ├── mk.js │ │ ├── mk.json │ │ ├── mn.js │ │ ├── mn.json │ │ ├── ms_MY.js │ │ ├── ms_MY.json │ │ ├── nb.js │ │ ├── nb.json │ │ ├── nl.js │ │ ├── nl.json │ │ ├── nn_NO.js │ │ ├── nn_NO.json │ │ ├── oc.js │ │ ├── oc.json │ │ ├── pl.js │ │ ├── pl.json │ │ ├── ps.js │ │ ├── ps.json │ │ ├── pt_BR.js │ │ ├── pt_BR.json │ │ ├── pt_PT.js │ │ ├── pt_PT.json │ │ ├── ro.js │ │ ├── ro.json │ │ ├── ru.js │ │ ├── ru.json │ │ ├── sc.js │ │ ├── sc.json │ │ ├── si.js │ │ ├── si.json │ │ ├── sk.js │ │ ├── sk.json │ │ ├── sl.js │ │ ├── sl.json │ │ ├── sq.js │ │ ├── sq.json │ │ ├── sr.js │ │ ├── sr.json │ │ ├── sr@latin.js │ │ ├── sr@latin.json │ │ ├── sv.js │ │ ├── sv.json │ │ ├── ta.js │ │ ├── ta.json │ │ ├── th.js │ │ ├── th.json │ │ ├── tk.js │ │ ├── tk.json │ │ ├── tr.js │ │ ├── tr.json │ │ ├── ug.js │ │ ├── ug.json │ │ ├── uk.js │ │ ├── uk.json │ │ ├── ur_PK.js │ │ ├── ur_PK.json │ │ ├── uz.js │ │ ├── uz.json │ │ ├── vi.js │ │ ├── vi.json │ │ ├── zh_CN.js │ │ ├── zh_CN.json │ │ ├── zh_HK.js │ │ ├── zh_HK.json │ │ ├── zh_TW.js │ │ └── zh_TW.json │ │ ├── lib │ │ ├── AppInfo │ │ │ └── Application.php │ │ ├── Command │ │ │ └── Settings.php │ │ ├── ContentSecurityPolicy.php │ │ ├── Controller │ │ │ ├── FetchController.php │ │ │ └── PageController.php │ │ ├── Dashboard │ │ │ └── UnreadMailWidget.php │ │ ├── Listeners │ │ │ └── AccessTokenUpdatedListener.php │ │ ├── Migration │ │ │ └── InstallStep.php │ │ ├── Search │ │ │ └── Provider.php │ │ ├── Settings │ │ │ ├── AdminSettings.php │ │ │ └── PersonalSettings.php │ │ └── Util │ │ │ ├── RainLoop.php │ │ │ └── SnappyMailHelper.php │ │ └── templates │ │ ├── admin-local.php │ │ ├── index.php │ │ ├── index_embed.php │ │ └── personal_settings.php ├── owncloud │ └── snappymail │ │ ├── CHANGELOG.md │ │ ├── INSTALL │ │ ├── README.md │ │ ├── app │ │ └── data │ │ │ └── _data_ │ │ │ └── _default_ │ │ │ └── plugins │ │ │ └── owncloud │ │ │ ├── OwnCloudSuggestions.php │ │ │ └── index.php │ │ ├── appinfo │ │ ├── info.xml │ │ └── routes.php │ │ ├── css │ │ ├── embed.css │ │ └── style.css │ │ ├── img │ │ ├── favicon-touch.png │ │ ├── favicon.ico │ │ ├── logo-64x64.png │ │ └── logo-white-64x64.png │ │ ├── js │ │ └── snappymail.js │ │ ├── l10n │ │ ├── en_GB.js │ │ └── en_GB.json │ │ ├── lib │ │ ├── AppInfo │ │ │ └── Application.php │ │ ├── ContentSecurityPolicy.php │ │ ├── Controller │ │ │ ├── FetchController.php │ │ │ └── PageController.php │ │ ├── Search │ │ │ └── Provider.php │ │ ├── Settings │ │ │ ├── AdminSettings.php │ │ │ └── PersonalSettings.php │ │ └── Util │ │ │ └── SnappyMailHelper.php │ │ └── templates │ │ ├── admin-local.php │ │ ├── index.php │ │ ├── index_embed.php │ │ └── personal_settings.php └── virtualmin │ └── snappymail.pl ├── jsconfig.json ├── package.json ├── plugins ├── README.md ├── add-x-originating-ip-header │ ├── LICENSE │ └── index.php ├── attachments-force-open │ ├── extension.js │ └── index.php ├── auto-domain-grab │ ├── LICENSE │ ├── README │ └── index.php ├── avatars │ ├── LICENSE │ ├── avatars.js │ ├── identicon.js │ ├── images │ │ └── services │ │ │ ├── amazon.com.png │ │ │ ├── apple.com.png │ │ │ ├── asana.com.png │ │ │ ├── battle.net.png │ │ │ ├── blizzard.com.png │ │ │ ├── dhl.com.png │ │ │ ├── disneyplus.com.png │ │ │ ├── ea.com.png │ │ │ ├── ebay.com.png │ │ │ ├── facebook.com.png │ │ │ ├── github.com.png │ │ │ ├── google.com.png │ │ │ ├── linkedin.com.png │ │ │ ├── microsoft.com.png │ │ │ ├── onlive.com.png │ │ │ ├── paypal.com.png │ │ │ ├── skype.com.png │ │ │ ├── steampowered.com.png │ │ │ ├── ted.com.png │ │ │ ├── twitter.com.png │ │ │ └── youtube.com.png │ ├── index.php │ ├── jdenticon.js │ └── style.css ├── backup │ ├── LICENSE │ ├── index.php │ └── js │ │ └── BackupAdminSettings.js ├── black-list │ ├── LICENSE │ └── index.php ├── cache-apcu │ ├── APCU.php │ └── index.php ├── cache-memcache │ ├── Memcache.php │ └── index.php ├── cache-redis │ ├── LICENSE │ ├── Predis │ │ ├── Autoloader.php │ │ ├── Client.php │ │ ├── ClientConfiguration.php │ │ ├── ClientContextInterface.php │ │ ├── ClientException.php │ │ ├── ClientInterface.php │ │ ├── Cluster │ │ │ ├── ClusterStrategy.php │ │ │ ├── Distributor │ │ │ │ ├── DistributorInterface.php │ │ │ │ ├── EmptyRingException.php │ │ │ │ ├── HashRing.php │ │ │ │ └── KetamaRing.php │ │ │ ├── Hash │ │ │ │ ├── CRC16.php │ │ │ │ ├── HashGeneratorInterface.php │ │ │ │ └── PhpiredisCRC16.php │ │ │ ├── PredisStrategy.php │ │ │ ├── RedisStrategy.php │ │ │ ├── SlotMap.php │ │ │ └── StrategyInterface.php │ │ ├── Collection │ │ │ └── Iterator │ │ │ │ ├── CursorBasedIterator.php │ │ │ │ ├── HashKey.php │ │ │ │ ├── Keyspace.php │ │ │ │ ├── ListKey.php │ │ │ │ ├── SetKey.php │ │ │ │ └── SortedSetKey.php │ │ ├── Command │ │ │ ├── Argument │ │ │ │ ├── ArrayableArgument.php │ │ │ │ ├── Geospatial │ │ │ │ │ ├── AbstractBy.php │ │ │ │ │ ├── ByBox.php │ │ │ │ │ ├── ByInterface.php │ │ │ │ │ ├── ByRadius.php │ │ │ │ │ ├── FromInterface.php │ │ │ │ │ ├── FromLonLat.php │ │ │ │ │ └── FromMember.php │ │ │ │ ├── Search │ │ │ │ │ ├── AggregateArguments.php │ │ │ │ │ ├── AlterArguments.php │ │ │ │ │ ├── CommonArguments.php │ │ │ │ │ ├── CreateArguments.php │ │ │ │ │ ├── CursorArguments.php │ │ │ │ │ ├── DropArguments.php │ │ │ │ │ ├── ExplainArguments.php │ │ │ │ │ ├── ProfileArguments.php │ │ │ │ │ ├── SchemaFields │ │ │ │ │ │ ├── AbstractField.php │ │ │ │ │ │ ├── FieldInterface.php │ │ │ │ │ │ ├── GeoField.php │ │ │ │ │ │ ├── NumericField.php │ │ │ │ │ │ ├── TagField.php │ │ │ │ │ │ ├── TextField.php │ │ │ │ │ │ └── VectorField.php │ │ │ │ │ ├── SearchArguments.php │ │ │ │ │ ├── SpellcheckArguments.php │ │ │ │ │ ├── SugAddArguments.php │ │ │ │ │ ├── SugGetArguments.php │ │ │ │ │ └── SynUpdateArguments.php │ │ │ │ ├── Server │ │ │ │ │ ├── LimitInterface.php │ │ │ │ │ ├── LimitOffsetCount.php │ │ │ │ │ └── To.php │ │ │ │ └── TimeSeries │ │ │ │ │ ├── AddArguments.php │ │ │ │ │ ├── AlterArguments.php │ │ │ │ │ ├── CommonArguments.php │ │ │ │ │ ├── CreateArguments.php │ │ │ │ │ ├── DecrByArguments.php │ │ │ │ │ ├── GetArguments.php │ │ │ │ │ ├── IncrByArguments.php │ │ │ │ │ ├── InfoArguments.php │ │ │ │ │ ├── MGetArguments.php │ │ │ │ │ ├── MRangeArguments.php │ │ │ │ │ └── RangeArguments.php │ │ │ ├── Command.php │ │ │ ├── CommandInterface.php │ │ │ ├── Factory.php │ │ │ ├── FactoryInterface.php │ │ │ ├── PrefixableCommandInterface.php │ │ │ ├── Processor │ │ │ │ ├── KeyPrefixProcessor.php │ │ │ │ ├── ProcessorChain.php │ │ │ │ └── ProcessorInterface.php │ │ │ ├── RawCommand.php │ │ │ ├── RawFactory.php │ │ │ ├── Redis │ │ │ │ ├── ACL.php │ │ │ │ ├── APPEND.php │ │ │ │ ├── AUTH.php │ │ │ │ ├── AbstractCommand │ │ │ │ │ └── BZPOPBase.php │ │ │ │ ├── BGREWRITEAOF.php │ │ │ │ ├── BGSAVE.php │ │ │ │ ├── BITCOUNT.php │ │ │ │ ├── BITFIELD.php │ │ │ │ ├── BITOP.php │ │ │ │ ├── BITPOS.php │ │ │ │ ├── BLMOVE.php │ │ │ │ ├── BLMPOP.php │ │ │ │ ├── BLPOP.php │ │ │ │ ├── BRPOP.php │ │ │ │ ├── BRPOPLPUSH.php │ │ │ │ ├── BZMPOP.php │ │ │ │ ├── BZPOPMAX.php │ │ │ │ ├── BZPOPMIN.php │ │ │ │ ├── BloomFilter │ │ │ │ │ ├── BFADD.php │ │ │ │ │ ├── BFEXISTS.php │ │ │ │ │ ├── BFINFO.php │ │ │ │ │ ├── BFINSERT.php │ │ │ │ │ ├── BFLOADCHUNK.php │ │ │ │ │ ├── BFMADD.php │ │ │ │ │ ├── BFMEXISTS.php │ │ │ │ │ ├── BFRESERVE.php │ │ │ │ │ └── BFSCANDUMP.php │ │ │ │ ├── CLIENT.php │ │ │ │ ├── CLUSTER.php │ │ │ │ ├── COMMAND.php │ │ │ │ ├── CONFIG.php │ │ │ │ ├── COPY.php │ │ │ │ ├── Container │ │ │ │ │ ├── ACL.php │ │ │ │ │ ├── AbstractContainer.php │ │ │ │ │ ├── CLUSTER.php │ │ │ │ │ ├── ContainerFactory.php │ │ │ │ │ ├── ContainerInterface.php │ │ │ │ │ ├── FunctionContainer.php │ │ │ │ │ ├── Json │ │ │ │ │ │ └── JSONDEBUG.php │ │ │ │ │ └── Search │ │ │ │ │ │ ├── FTCONFIG.php │ │ │ │ │ │ └── FTCURSOR.php │ │ │ │ ├── CountMinSketch │ │ │ │ │ ├── CMSINCRBY.php │ │ │ │ │ ├── CMSINFO.php │ │ │ │ │ ├── CMSINITBYDIM.php │ │ │ │ │ ├── CMSINITBYPROB.php │ │ │ │ │ ├── CMSMERGE.php │ │ │ │ │ └── CMSQUERY.php │ │ │ │ ├── CuckooFilter │ │ │ │ │ ├── CFADD.php │ │ │ │ │ ├── CFADDNX.php │ │ │ │ │ ├── CFCOUNT.php │ │ │ │ │ ├── CFDEL.php │ │ │ │ │ ├── CFEXISTS.php │ │ │ │ │ ├── CFINFO.php │ │ │ │ │ ├── CFINSERT.php │ │ │ │ │ ├── CFINSERTNX.php │ │ │ │ │ ├── CFLOADCHUNK.php │ │ │ │ │ ├── CFMEXISTS.php │ │ │ │ │ ├── CFRESERVE.php │ │ │ │ │ └── CFSCANDUMP.php │ │ │ │ ├── DBSIZE.php │ │ │ │ ├── DECR.php │ │ │ │ ├── DECRBY.php │ │ │ │ ├── DEL.php │ │ │ │ ├── DISCARD.php │ │ │ │ ├── DUMP.php │ │ │ │ ├── ECHO_.php │ │ │ │ ├── EVALSHA.php │ │ │ │ ├── EVALSHA_RO.php │ │ │ │ ├── EVAL_.php │ │ │ │ ├── EVAL_RO.php │ │ │ │ ├── EXEC.php │ │ │ │ ├── EXISTS.php │ │ │ │ ├── EXPIRE.php │ │ │ │ ├── EXPIREAT.php │ │ │ │ ├── EXPIRETIME.php │ │ │ │ ├── FAILOVER.php │ │ │ │ ├── FCALL.php │ │ │ │ ├── FCALL_RO.php │ │ │ │ ├── FLUSHALL.php │ │ │ │ ├── FLUSHDB.php │ │ │ │ ├── FUNCTIONS.php │ │ │ │ ├── GEOADD.php │ │ │ │ ├── GEODIST.php │ │ │ │ ├── GEOHASH.php │ │ │ │ ├── GEOPOS.php │ │ │ │ ├── GEORADIUS.php │ │ │ │ ├── GEORADIUSBYMEMBER.php │ │ │ │ ├── GEOSEARCH.php │ │ │ │ ├── GEOSEARCHSTORE.php │ │ │ │ ├── GET.php │ │ │ │ ├── GETBIT.php │ │ │ │ ├── GETDEL.php │ │ │ │ ├── GETEX.php │ │ │ │ ├── GETRANGE.php │ │ │ │ ├── GETSET.php │ │ │ │ ├── HDEL.php │ │ │ │ ├── HEXISTS.php │ │ │ │ ├── HGET.php │ │ │ │ ├── HGETALL.php │ │ │ │ ├── HINCRBY.php │ │ │ │ ├── HINCRBYFLOAT.php │ │ │ │ ├── HKEYS.php │ │ │ │ ├── HLEN.php │ │ │ │ ├── HMGET.php │ │ │ │ ├── HMSET.php │ │ │ │ ├── HRANDFIELD.php │ │ │ │ ├── HSCAN.php │ │ │ │ ├── HSET.php │ │ │ │ ├── HSETNX.php │ │ │ │ ├── HSTRLEN.php │ │ │ │ ├── HVALS.php │ │ │ │ ├── INCR.php │ │ │ │ ├── INCRBY.php │ │ │ │ ├── INCRBYFLOAT.php │ │ │ │ ├── INFO.php │ │ │ │ ├── Json │ │ │ │ │ ├── JSONARRAPPEND.php │ │ │ │ │ ├── JSONARRINDEX.php │ │ │ │ │ ├── JSONARRINSERT.php │ │ │ │ │ ├── JSONARRLEN.php │ │ │ │ │ ├── JSONARRPOP.php │ │ │ │ │ ├── JSONARRTRIM.php │ │ │ │ │ ├── JSONCLEAR.php │ │ │ │ │ ├── JSONDEBUG.php │ │ │ │ │ ├── JSONDEL.php │ │ │ │ │ ├── JSONFORGET.php │ │ │ │ │ ├── JSONGET.php │ │ │ │ │ ├── JSONMERGE.php │ │ │ │ │ ├── JSONMGET.php │ │ │ │ │ ├── JSONMSET.php │ │ │ │ │ ├── JSONNUMINCRBY.php │ │ │ │ │ ├── JSONOBJKEYS.php │ │ │ │ │ ├── JSONOBJLEN.php │ │ │ │ │ ├── JSONRESP.php │ │ │ │ │ ├── JSONSET.php │ │ │ │ │ ├── JSONSTRAPPEND.php │ │ │ │ │ ├── JSONSTRLEN.php │ │ │ │ │ ├── JSONTOGGLE.php │ │ │ │ │ └── JSONTYPE.php │ │ │ │ ├── KEYS.php │ │ │ │ ├── LASTSAVE.php │ │ │ │ ├── LCS.php │ │ │ │ ├── LINDEX.php │ │ │ │ ├── LINSERT.php │ │ │ │ ├── LLEN.php │ │ │ │ ├── LMOVE.php │ │ │ │ ├── LMPOP.php │ │ │ │ ├── LPOP.php │ │ │ │ ├── LPUSH.php │ │ │ │ ├── LPUSHX.php │ │ │ │ ├── LRANGE.php │ │ │ │ ├── LREM.php │ │ │ │ ├── LSET.php │ │ │ │ ├── LTRIM.php │ │ │ │ ├── MGET.php │ │ │ │ ├── MIGRATE.php │ │ │ │ ├── MONITOR.php │ │ │ │ ├── MOVE.php │ │ │ │ ├── MSET.php │ │ │ │ ├── MSETNX.php │ │ │ │ ├── MULTI.php │ │ │ │ ├── OBJECT_.php │ │ │ │ ├── PERSIST.php │ │ │ │ ├── PEXPIRE.php │ │ │ │ ├── PEXPIREAT.php │ │ │ │ ├── PEXPIRETIME.php │ │ │ │ ├── PFADD.php │ │ │ │ ├── PFCOUNT.php │ │ │ │ ├── PFMERGE.php │ │ │ │ ├── PING.php │ │ │ │ ├── PSETEX.php │ │ │ │ ├── PSUBSCRIBE.php │ │ │ │ ├── PTTL.php │ │ │ │ ├── PUBLISH.php │ │ │ │ ├── PUBSUB.php │ │ │ │ ├── PUNSUBSCRIBE.php │ │ │ │ ├── QUIT.php │ │ │ │ ├── RANDOMKEY.php │ │ │ │ ├── RENAME.php │ │ │ │ ├── RENAMENX.php │ │ │ │ ├── RESTORE.php │ │ │ │ ├── RPOP.php │ │ │ │ ├── RPOPLPUSH.php │ │ │ │ ├── RPUSH.php │ │ │ │ ├── RPUSHX.php │ │ │ │ ├── SADD.php │ │ │ │ ├── SAVE.php │ │ │ │ ├── SCAN.php │ │ │ │ ├── SCARD.php │ │ │ │ ├── SCRIPT.php │ │ │ │ ├── SDIFF.php │ │ │ │ ├── SDIFFSTORE.php │ │ │ │ ├── SELECT.php │ │ │ │ ├── SENTINEL.php │ │ │ │ ├── SET.php │ │ │ │ ├── SETBIT.php │ │ │ │ ├── SETEX.php │ │ │ │ ├── SETNX.php │ │ │ │ ├── SETRANGE.php │ │ │ │ ├── SHUTDOWN.php │ │ │ │ ├── SINTER.php │ │ │ │ ├── SINTERCARD.php │ │ │ │ ├── SINTERSTORE.php │ │ │ │ ├── SISMEMBER.php │ │ │ │ ├── SLAVEOF.php │ │ │ │ ├── SLOWLOG.php │ │ │ │ ├── SMEMBERS.php │ │ │ │ ├── SMISMEMBER.php │ │ │ │ ├── SMOVE.php │ │ │ │ ├── SORT.php │ │ │ │ ├── SORT_RO.php │ │ │ │ ├── SPOP.php │ │ │ │ ├── SRANDMEMBER.php │ │ │ │ ├── SREM.php │ │ │ │ ├── SSCAN.php │ │ │ │ ├── STRLEN.php │ │ │ │ ├── SUBSCRIBE.php │ │ │ │ ├── SUBSTR.php │ │ │ │ ├── SUNION.php │ │ │ │ ├── SUNIONSTORE.php │ │ │ │ ├── Search │ │ │ │ │ ├── FTAGGREGATE.php │ │ │ │ │ ├── FTALIASADD.php │ │ │ │ │ ├── FTALIASDEL.php │ │ │ │ │ ├── FTALIASUPDATE.php │ │ │ │ │ ├── FTALTER.php │ │ │ │ │ ├── FTCONFIG.php │ │ │ │ │ ├── FTCREATE.php │ │ │ │ │ ├── FTCURSOR.php │ │ │ │ │ ├── FTDICTADD.php │ │ │ │ │ ├── FTDICTDEL.php │ │ │ │ │ ├── FTDICTDUMP.php │ │ │ │ │ ├── FTDROPINDEX.php │ │ │ │ │ ├── FTEXPLAIN.php │ │ │ │ │ ├── FTINFO.php │ │ │ │ │ ├── FTPROFILE.php │ │ │ │ │ ├── FTSEARCH.php │ │ │ │ │ ├── FTSPELLCHECK.php │ │ │ │ │ ├── FTSUGADD.php │ │ │ │ │ ├── FTSUGDEL.php │ │ │ │ │ ├── FTSUGGET.php │ │ │ │ │ ├── FTSUGLEN.php │ │ │ │ │ ├── FTSYNDUMP.php │ │ │ │ │ ├── FTSYNUPDATE.php │ │ │ │ │ └── FTTAGVALS.php │ │ │ │ ├── TDigest │ │ │ │ │ ├── TDIGESTADD.php │ │ │ │ │ ├── TDIGESTBYRANK.php │ │ │ │ │ ├── TDIGESTBYREVRANK.php │ │ │ │ │ ├── TDIGESTCDF.php │ │ │ │ │ ├── TDIGESTCREATE.php │ │ │ │ │ ├── TDIGESTINFO.php │ │ │ │ │ ├── TDIGESTMAX.php │ │ │ │ │ ├── TDIGESTMERGE.php │ │ │ │ │ ├── TDIGESTMIN.php │ │ │ │ │ ├── TDIGESTQUANTILE.php │ │ │ │ │ ├── TDIGESTRANK.php │ │ │ │ │ ├── TDIGESTRESET.php │ │ │ │ │ ├── TDIGESTREVRANK.php │ │ │ │ │ └── TDIGESTTRIMMED_MEAN.php │ │ │ │ ├── TIME.php │ │ │ │ ├── TOUCH.php │ │ │ │ ├── TTL.php │ │ │ │ ├── TYPE.php │ │ │ │ ├── TimeSeries │ │ │ │ │ ├── TSADD.php │ │ │ │ │ ├── TSALTER.php │ │ │ │ │ ├── TSCREATE.php │ │ │ │ │ ├── TSCREATERULE.php │ │ │ │ │ ├── TSDECRBY.php │ │ │ │ │ ├── TSDEL.php │ │ │ │ │ ├── TSDELETERULE.php │ │ │ │ │ ├── TSGET.php │ │ │ │ │ ├── TSINCRBY.php │ │ │ │ │ ├── TSINFO.php │ │ │ │ │ ├── TSMADD.php │ │ │ │ │ ├── TSMGET.php │ │ │ │ │ ├── TSMRANGE.php │ │ │ │ │ ├── TSMREVRANGE.php │ │ │ │ │ ├── TSQUERYINDEX.php │ │ │ │ │ ├── TSRANGE.php │ │ │ │ │ └── TSREVRANGE.php │ │ │ │ ├── TopK │ │ │ │ │ ├── TOPKADD.php │ │ │ │ │ ├── TOPKINCRBY.php │ │ │ │ │ ├── TOPKINFO.php │ │ │ │ │ ├── TOPKLIST.php │ │ │ │ │ ├── TOPKQUERY.php │ │ │ │ │ └── TOPKRESERVE.php │ │ │ │ ├── UNSUBSCRIBE.php │ │ │ │ ├── UNWATCH.php │ │ │ │ ├── WAITAOF.php │ │ │ │ ├── WATCH.php │ │ │ │ ├── XADD.php │ │ │ │ ├── XDEL.php │ │ │ │ ├── XLEN.php │ │ │ │ ├── XRANGE.php │ │ │ │ ├── XREVRANGE.php │ │ │ │ ├── XTRIM.php │ │ │ │ ├── ZADD.php │ │ │ │ ├── ZCARD.php │ │ │ │ ├── ZCOUNT.php │ │ │ │ ├── ZDIFF.php │ │ │ │ ├── ZDIFFSTORE.php │ │ │ │ ├── ZINCRBY.php │ │ │ │ ├── ZINTER.php │ │ │ │ ├── ZINTERCARD.php │ │ │ │ ├── ZINTERSTORE.php │ │ │ │ ├── ZLEXCOUNT.php │ │ │ │ ├── ZMPOP.php │ │ │ │ ├── ZMSCORE.php │ │ │ │ ├── ZPOPMAX.php │ │ │ │ ├── ZPOPMIN.php │ │ │ │ ├── ZRANDMEMBER.php │ │ │ │ ├── ZRANGE.php │ │ │ │ ├── ZRANGEBYLEX.php │ │ │ │ ├── ZRANGEBYSCORE.php │ │ │ │ ├── ZRANGESTORE.php │ │ │ │ ├── ZRANK.php │ │ │ │ ├── ZREM.php │ │ │ │ ├── ZREMRANGEBYLEX.php │ │ │ │ ├── ZREMRANGEBYRANK.php │ │ │ │ ├── ZREMRANGEBYSCORE.php │ │ │ │ ├── ZREVRANGE.php │ │ │ │ ├── ZREVRANGEBYLEX.php │ │ │ │ ├── ZREVRANGEBYSCORE.php │ │ │ │ ├── ZREVRANK.php │ │ │ │ ├── ZSCAN.php │ │ │ │ ├── ZSCORE.php │ │ │ │ ├── ZUNION.php │ │ │ │ └── ZUNIONSTORE.php │ │ │ ├── RedisFactory.php │ │ │ ├── ScriptCommand.php │ │ │ ├── Strategy │ │ │ │ ├── ContainerCommands │ │ │ │ │ └── Functions │ │ │ │ │ │ ├── DeleteStrategy.php │ │ │ │ │ │ ├── DumpStrategy.php │ │ │ │ │ │ ├── FlushStrategy.php │ │ │ │ │ │ ├── KillStrategy.php │ │ │ │ │ │ ├── ListStrategy.php │ │ │ │ │ │ ├── LoadStrategy.php │ │ │ │ │ │ ├── RestoreStrategy.php │ │ │ │ │ │ └── StatsStrategy.php │ │ │ │ ├── StrategyResolverInterface.php │ │ │ │ ├── SubcommandStrategyInterface.php │ │ │ │ └── SubcommandStrategyResolver.php │ │ │ └── Traits │ │ │ │ ├── Aggregate.php │ │ │ │ ├── BitByte.php │ │ │ │ ├── BloomFilters │ │ │ │ ├── BucketSize.php │ │ │ │ ├── Capacity.php │ │ │ │ ├── Error.php │ │ │ │ ├── Expansion.php │ │ │ │ ├── Items.php │ │ │ │ ├── MaxIterations.php │ │ │ │ └── NoCreate.php │ │ │ │ ├── By │ │ │ │ ├── ByArgument.php │ │ │ │ ├── ByLexByScore.php │ │ │ │ └── GeoBy.php │ │ │ │ ├── Count.php │ │ │ │ ├── DB.php │ │ │ │ ├── Expire │ │ │ │ └── ExpireOptions.php │ │ │ │ ├── From │ │ │ │ └── GeoFrom.php │ │ │ │ ├── Get │ │ │ │ └── Get.php │ │ │ │ ├── Json │ │ │ │ ├── Indent.php │ │ │ │ ├── Newline.php │ │ │ │ ├── NxXxArgument.php │ │ │ │ └── Space.php │ │ │ │ ├── Keys.php │ │ │ │ ├── LeftRight.php │ │ │ │ ├── Limit │ │ │ │ ├── Limit.php │ │ │ │ └── LimitObject.php │ │ │ │ ├── MinMaxModifier.php │ │ │ │ ├── Replace.php │ │ │ │ ├── Rev.php │ │ │ │ ├── Sorting.php │ │ │ │ ├── Storedist.php │ │ │ │ ├── Timeout.php │ │ │ │ ├── To │ │ │ │ └── ServerTo.php │ │ │ │ ├── Weights.php │ │ │ │ └── With │ │ │ │ ├── WithCoord.php │ │ │ │ ├── WithDist.php │ │ │ │ ├── WithHash.php │ │ │ │ ├── WithScores.php │ │ │ │ └── WithValues.php │ │ ├── CommunicationException.php │ │ ├── Configuration │ │ │ ├── Option │ │ │ │ ├── Aggregate.php │ │ │ │ ├── CRC16.php │ │ │ │ ├── Cluster.php │ │ │ │ ├── Commands.php │ │ │ │ ├── Connections.php │ │ │ │ ├── Exceptions.php │ │ │ │ ├── Prefix.php │ │ │ │ └── Replication.php │ │ │ ├── OptionInterface.php │ │ │ ├── Options.php │ │ │ └── OptionsInterface.php │ │ ├── Connection │ │ │ ├── AbstractConnection.php │ │ │ ├── AggregateConnectionInterface.php │ │ │ ├── Cluster │ │ │ │ ├── ClusterInterface.php │ │ │ │ ├── PredisCluster.php │ │ │ │ └── RedisCluster.php │ │ │ ├── CompositeConnectionInterface.php │ │ │ ├── CompositeStreamConnection.php │ │ │ ├── ConnectionException.php │ │ │ ├── ConnectionInterface.php │ │ │ ├── Factory.php │ │ │ ├── FactoryInterface.php │ │ │ ├── NodeConnectionInterface.php │ │ │ ├── Parameters.php │ │ │ ├── ParametersInterface.php │ │ │ ├── PhpiredisSocketConnection.php │ │ │ ├── PhpiredisStreamConnection.php │ │ │ ├── RelayConnection.php │ │ │ ├── RelayMethods.php │ │ │ ├── Replication │ │ │ │ ├── MasterSlaveReplication.php │ │ │ │ ├── ReplicationInterface.php │ │ │ │ └── SentinelReplication.php │ │ │ ├── StreamConnection.php │ │ │ └── WebdisConnection.php │ │ ├── Monitor │ │ │ └── Consumer.php │ │ ├── NotSupportedException.php │ │ ├── Pipeline │ │ │ ├── Atomic.php │ │ │ ├── ConnectionErrorProof.php │ │ │ ├── FireAndForget.php │ │ │ ├── Pipeline.php │ │ │ ├── RelayAtomic.php │ │ │ └── RelayPipeline.php │ │ ├── PredisException.php │ │ ├── Protocol │ │ │ ├── ProtocolException.php │ │ │ ├── ProtocolProcessorInterface.php │ │ │ ├── RequestSerializerInterface.php │ │ │ ├── ResponseReaderInterface.php │ │ │ └── Text │ │ │ │ ├── CompositeProtocolProcessor.php │ │ │ │ ├── Handler │ │ │ │ ├── BulkResponse.php │ │ │ │ ├── ErrorResponse.php │ │ │ │ ├── IntegerResponse.php │ │ │ │ ├── MultiBulkResponse.php │ │ │ │ ├── ResponseHandlerInterface.php │ │ │ │ ├── StatusResponse.php │ │ │ │ └── StreamableMultiBulkResponse.php │ │ │ │ ├── ProtocolProcessor.php │ │ │ │ ├── RequestSerializer.php │ │ │ │ └── ResponseReader.php │ │ ├── PubSub │ │ │ ├── AbstractConsumer.php │ │ │ ├── Consumer.php │ │ │ ├── DispatcherLoop.php │ │ │ └── RelayConsumer.php │ │ ├── Replication │ │ │ ├── MissingMasterException.php │ │ │ ├── ReplicationStrategy.php │ │ │ └── RoleException.php │ │ ├── Response │ │ │ ├── Error.php │ │ │ ├── ErrorInterface.php │ │ │ ├── Iterator │ │ │ │ ├── MultiBulk.php │ │ │ │ ├── MultiBulkIterator.php │ │ │ │ └── MultiBulkTuple.php │ │ │ ├── ResponseInterface.php │ │ │ ├── ServerException.php │ │ │ └── Status.php │ │ ├── Session │ │ │ └── Handler.php │ │ └── Transaction │ │ │ ├── AbortedMultiExecException.php │ │ │ ├── MultiExec.php │ │ │ └── MultiExecState.php │ ├── README.md │ ├── Redis.php │ └── index.php ├── change-password-cpanel │ ├── driver.php │ ├── index.php │ └── jsonapi.php ├── change-password-froxlor │ ├── driver.php │ └── index.php ├── change-password-hestia │ ├── driver.php │ └── index.php ├── change-password-hmailserver │ ├── driver.php │ └── index.php ├── change-password-ispconfig │ ├── LICENSE │ ├── driver.php │ └── index.php ├── change-password-mailcow │ ├── driver.php │ └── index.php ├── change-password-poppassd │ ├── LICENSE │ ├── driver.php │ └── index.php ├── change-password │ ├── LICENSE │ ├── drivers │ │ ├── example.phps │ │ ├── ldap.php │ │ └── pdo.php │ ├── index.php │ ├── js │ │ └── ChangePasswordUserSettings.js │ ├── langs │ │ ├── de.ini │ │ ├── en.ini │ │ ├── en_GB.ini │ │ ├── en_US.ini │ │ ├── es.ini │ │ ├── fr.ini │ │ ├── it.ini │ │ ├── nl.ini │ │ ├── uk.ini │ │ └── zh.ini │ ├── style.css │ └── templates │ │ └── SettingsChangePassword.html ├── change-smtp-ehlo-message │ ├── LICENSE │ └── index.php ├── compact-composer │ ├── css │ │ └── composer.css │ ├── index.php │ ├── js │ │ ├── CompactComposer.js │ │ ├── parsel.js │ │ └── squire-raw.js │ └── screenshots │ │ ├── Screenshot1.png │ │ ├── Screenshot2.png │ │ ├── Screenshot3.png │ │ ├── Screenshot4.png │ │ ├── Screenshot5.png │ │ └── Screenshot6.png ├── contact-group-excel-paste │ ├── LICENCE │ ├── README │ ├── index.php │ └── js │ │ └── excel_contact_group.js ├── custom-login-mapping │ ├── LICENSE │ └── index.php ├── custom-system-folders │ ├── LICENSE │ └── index.php ├── demo-account │ ├── demo.js │ ├── index.php │ └── storage.php ├── example │ ├── ContactSuggestions.php │ ├── LICENSE │ ├── example.js │ ├── index.php │ ├── js │ │ ├── ExampleAdminSettings.js │ │ └── ExampleUserSettings.js │ ├── langs │ │ └── en.json │ └── templates │ │ ├── ExampleAdminSettingsTab.html │ │ └── ExampleUserSettingsTab.html ├── haveibeenpwned │ ├── hibp.js │ └── index.php ├── ics-viewer │ ├── LICENSE │ ├── ical.js │ ├── index.php │ ├── message.js │ ├── style.css │ └── windowsZones.js ├── imap-contacts-suggestions │ ├── ImapContactsSuggestions.php │ ├── LICENSE │ └── index.php ├── kolab │ ├── KolabAddressBook.php │ ├── LICENSE │ ├── index.php │ ├── js │ │ └── settings.js │ ├── langs │ │ ├── ar.json │ │ ├── bg.json │ │ ├── cs.json │ │ ├── da.json │ │ ├── de.json │ │ ├── el.json │ │ ├── en.json │ │ ├── es.json │ │ ├── et.json │ │ ├── fa.json │ │ ├── fi.json │ │ ├── fr.json │ │ ├── hu.json │ │ ├── id.json │ │ ├── is.json │ │ ├── it.json │ │ ├── ja.json │ │ ├── ko.json │ │ ├── lt.json │ │ ├── lv.json │ │ ├── nb.json │ │ ├── nl.json │ │ ├── pl.json │ │ ├── pt.json │ │ ├── ro.json │ │ ├── ru.json │ │ ├── sk.json │ │ ├── sl.json │ │ ├── sv.json │ │ ├── tr.json │ │ ├── uk.json │ │ ├── zh-TW.json │ │ └── zh.json │ └── templates │ │ └── KolabSettings.html ├── ldap-contacts-suggestions │ ├── LICENSE │ ├── LdapContactsSuggestions.php │ └── index.php ├── ldap-identities │ ├── LdapConfig.php │ ├── LdapException.php │ ├── LdapIdentities.php │ └── index.php ├── ldap-login-mapping │ ├── LICENSE │ ├── README │ ├── VERSION │ └── index.php ├── ldap-mail-accounts │ ├── LdapMailAccounts.php │ ├── LdapMailAccountsConfig.php │ ├── LdapMailAccountsException.php │ ├── README.md │ └── index.php ├── login-autoconfig │ ├── LICENSE │ └── index.php ├── login-cpanel │ ├── LICENSE │ └── index.php ├── login-external-sso │ ├── LICENSE │ └── index.php ├── login-external │ ├── LICENSE │ └── index.php ├── login-gmail │ ├── LoginOAuth2.js │ └── index.php ├── login-o365 │ ├── LoginOAuth2.js │ └── index.php ├── login-oauth2 │ ├── LoginOAuth2.js │ ├── OAuth2 │ │ ├── Client.php │ │ ├── GrantType │ │ │ ├── AuthorizationCode.php │ │ │ ├── ClientCredentials.php │ │ │ ├── IGrantType.php │ │ │ ├── Password.php │ │ │ └── RefreshToken.php │ │ ├── LICENSE │ │ └── README.md │ └── index.php ├── login-override │ ├── LICENSE │ └── index.php ├── login-proxyauth-example │ ├── LICENSE │ └── index.php ├── login-register │ ├── LoginRegister.js │ ├── index.php │ └── langs │ │ ├── ar.json │ │ ├── bg.json │ │ ├── cs.json │ │ ├── da.json │ │ ├── de.json │ │ ├── el.json │ │ ├── en.json │ │ ├── es.json │ │ ├── et.json │ │ ├── fa.json │ │ ├── fi.json │ │ ├── fr.json │ │ ├── hu.json │ │ ├── id.json │ │ ├── is.json │ │ ├── it.json │ │ ├── ja.json │ │ ├── ko.json │ │ ├── lt.json │ │ ├── lv.json │ │ ├── nb.json │ │ ├── nl.json │ │ ├── pl.json │ │ ├── pt.json │ │ ├── ro.json │ │ ├── ru.json │ │ ├── sk.json │ │ ├── sl.json │ │ ├── sv.json │ │ ├── tr.json │ │ ├── uk.json │ │ ├── zh-TW.json │ │ └── zh.json ├── login-remote │ ├── LICENSE │ └── index.php ├── login-virtuser │ └── index.php ├── mailbox-detect │ └── index.php ├── nextcloud │ ├── LICENSE │ ├── NextcloudContactsSuggestions.php │ ├── index.php │ ├── js │ │ ├── composer.js │ │ ├── message.js │ │ ├── messagelist.js │ │ └── webdav.js │ ├── langs │ │ ├── de.json │ │ ├── en.json │ │ ├── pl.json │ │ ├── ru.json │ │ ├── zh-TW.json │ │ └── zh.json │ ├── storage.php │ ├── style.css │ └── templates │ │ ├── PopupsNextcloudCalendars.html │ │ └── PopupsNextcloudFiles.html ├── override-smtp-credentials │ ├── LICENSE │ └── index.php ├── proxy-auth │ ├── LICENSE │ ├── README.md │ ├── index.php │ └── js │ │ └── auto-login.js ├── recaptcha │ ├── index.php │ └── js │ │ └── recaptcha.js ├── search-filters │ ├── index.php │ ├── js │ │ └── SearchFilters.js │ ├── langs │ │ └── en.json │ └── templates │ │ ├── PopupsSTabAdvancedSearch.html │ │ ├── PopupsSearchFilters.html │ │ └── STabSearchFilters.html ├── send-save-in │ ├── LICENSE │ ├── index.php │ └── savein.js ├── set-remote-addr │ ├── LICENSE │ └── index.php ├── smtp-use-from-adr-account │ ├── README │ └── index.php ├── snowfall-on-login-screen │ ├── LICENSE │ ├── index.php │ └── js │ │ ├── include.js │ │ └── snowfall.js ├── two-factor-auth │ ├── LICENSE │ ├── index.php │ ├── js │ │ ├── TwoFactorAuthLogin.js │ │ └── TwoFactorAuthSettings.js │ ├── langs │ │ ├── cs.ini │ │ ├── de.ini │ │ ├── en.ini │ │ ├── es.ini │ │ ├── fr.ini │ │ ├── hu.ini │ │ ├── it.ini │ │ ├── nl.ini │ │ ├── pl.ini │ │ ├── sv.ini │ │ ├── uk.ini │ │ └── zh.ini │ ├── providers │ │ ├── interface.php │ │ └── totp.php │ └── templates │ │ ├── PopupsTwoFactorAuthTest.html │ │ └── TwoFactorAuthSettings.html ├── video-on-login-screen │ ├── LICENSE │ ├── README │ ├── VERSION │ ├── index.php │ └── js │ │ └── video-on-login.js ├── view-ics │ ├── LICENSE │ ├── ical.js │ ├── index.php │ ├── message.js │ └── style.css ├── white-list │ ├── LICENSE │ └── index.php └── wysiwyg-example │ ├── example.js │ ├── index.php │ └── static │ └── example.min.js ├── public_html └── translate.php ├── release.php ├── rollup.config.js ├── snappymail └── v │ └── 0.0.0 │ ├── app │ ├── .htaccess │ ├── domains │ │ ├── default.json │ │ └── disabled │ ├── libraries │ │ ├── MailSo │ │ │ ├── Base │ │ │ │ ├── Collection.php │ │ │ │ ├── DateTimeHelper.php │ │ │ │ ├── Enumerations │ │ │ │ │ ├── Charset.php │ │ │ │ │ └── Encoding.php │ │ │ │ ├── HtmlUtils.php │ │ │ │ ├── Http.php │ │ │ │ ├── Locale.php │ │ │ │ ├── ResourceRegistry.php │ │ │ │ ├── StreamFilters │ │ │ │ │ └── LineEndings.php │ │ │ │ ├── StreamWrappers │ │ │ │ │ ├── Binary.php │ │ │ │ │ ├── Literal.php │ │ │ │ │ ├── SubStreams.php │ │ │ │ │ └── TempFile.php │ │ │ │ ├── Utils.php │ │ │ │ └── Xxtea.php │ │ │ ├── Cache │ │ │ │ ├── CacheClient.php │ │ │ │ ├── DriverInterface.php │ │ │ │ └── Drivers │ │ │ │ │ └── File.php │ │ │ ├── Config.php │ │ │ ├── Imap │ │ │ │ ├── BodyStructure.php │ │ │ │ ├── Commands │ │ │ │ │ ├── ACL.php │ │ │ │ │ ├── Folders.php │ │ │ │ │ ├── Messages.php │ │ │ │ │ ├── Metadata.php │ │ │ │ │ ├── Quota.php │ │ │ │ │ └── UrlAuth.php │ │ │ │ ├── Enumerations │ │ │ │ │ ├── FetchType.php │ │ │ │ │ ├── FolderACL.php │ │ │ │ │ ├── FolderStatus.php │ │ │ │ │ ├── FolderType.php │ │ │ │ │ ├── MessageFlag.php │ │ │ │ │ ├── MetadataKeys.php │ │ │ │ │ ├── ResponseStatus.php │ │ │ │ │ ├── ResponseType.php │ │ │ │ │ └── StoreAction.php │ │ │ │ ├── Exceptions │ │ │ │ │ ├── InvalidResponseException.php │ │ │ │ │ ├── LoginBadCredentialsException.php │ │ │ │ │ ├── LoginBadMethodException.php │ │ │ │ │ ├── LoginException.php │ │ │ │ │ ├── NegativeResponseException.php │ │ │ │ │ ├── ResponseException.php │ │ │ │ │ └── ResponseNotFoundException.php │ │ │ │ ├── FetchResponse.php │ │ │ │ ├── Folder.php │ │ │ │ ├── FolderCollection.php │ │ │ │ ├── FolderInformation.php │ │ │ │ ├── ImapClient.php │ │ │ │ ├── NamespaceResult.php │ │ │ │ ├── Requests │ │ │ │ │ ├── ESEARCH.php │ │ │ │ │ ├── Request.php │ │ │ │ │ ├── SORT.php │ │ │ │ │ └── THREAD.php │ │ │ │ ├── Response.php │ │ │ │ ├── ResponseCollection.php │ │ │ │ ├── Responses │ │ │ │ │ └── ACL.php │ │ │ │ ├── SearchCriterias.php │ │ │ │ ├── SequenceSet.php │ │ │ │ ├── Settings.php │ │ │ │ └── Traits │ │ │ │ │ ├── ResponseParser.php │ │ │ │ │ └── Status.php │ │ │ ├── LICENSE │ │ │ ├── Log │ │ │ │ ├── Driver.php │ │ │ │ ├── Drivers │ │ │ │ │ ├── File.php │ │ │ │ │ ├── StderrStream.php │ │ │ │ │ └── Syslog.php │ │ │ │ ├── Enumerations │ │ │ │ │ └── Type.php │ │ │ │ ├── Inherit.php │ │ │ │ └── Logger.php │ │ │ ├── Mail │ │ │ │ ├── Attachment.php │ │ │ │ ├── AttachmentCollection.php │ │ │ │ ├── Exceptions │ │ │ │ │ └── NonEmptyFolder.php │ │ │ │ ├── MailClient.php │ │ │ │ ├── Message.php │ │ │ │ ├── MessageCollection.php │ │ │ │ └── MessageListParams.php │ │ │ ├── Mime │ │ │ │ ├── Attachment.php │ │ │ │ ├── AttachmentCollection.php │ │ │ │ ├── Email.php │ │ │ │ ├── EmailCollection.php │ │ │ │ ├── Enumerations │ │ │ │ │ ├── ContentType.php │ │ │ │ │ ├── DkimStatus.php │ │ │ │ │ ├── Header.php │ │ │ │ │ ├── MessagePriority.php │ │ │ │ │ └── Parameter.php │ │ │ │ ├── Header.php │ │ │ │ ├── HeaderCollection.php │ │ │ │ ├── Message.php │ │ │ │ ├── Parameter.php │ │ │ │ ├── ParameterCollection.php │ │ │ │ ├── Parser.php │ │ │ │ ├── Part.php │ │ │ │ └── PartCollection.php │ │ │ ├── Net │ │ │ │ ├── ConnectSettings.php │ │ │ │ ├── Enumerations │ │ │ │ │ └── ConnectionSecurityType.php │ │ │ │ ├── Exceptions │ │ │ │ │ ├── ConnectionException.php │ │ │ │ │ ├── SocketAlreadyConnectedException.php │ │ │ │ │ ├── SocketCanNotConnectToHostException.php │ │ │ │ │ ├── SocketConnectionDoesNotAvailableException.php │ │ │ │ │ ├── SocketReadException.php │ │ │ │ │ ├── SocketReadTimeoutException.php │ │ │ │ │ ├── SocketUnreadBufferException.php │ │ │ │ │ ├── SocketUnsuppoterdSecureConnectionException.php │ │ │ │ │ └── SocketWriteException.php │ │ │ │ ├── NetClient.php │ │ │ │ └── SSLContext.php │ │ │ ├── RuntimeException.php │ │ │ ├── Sieve │ │ │ │ ├── Exceptions │ │ │ │ │ ├── LoginBadCredentialsException.php │ │ │ │ │ ├── LoginBadMethodException.php │ │ │ │ │ ├── LoginException.php │ │ │ │ │ ├── NegativeResponseException.php │ │ │ │ │ └── ResponseException.php │ │ │ │ ├── Settings.php │ │ │ │ └── SieveClient.php │ │ │ └── Smtp │ │ │ │ ├── Exceptions │ │ │ │ ├── LoginBadCredentialsException.php │ │ │ │ ├── LoginBadMethodException.php │ │ │ │ ├── LoginException.php │ │ │ │ ├── NegativeResponseException.php │ │ │ │ └── ResponseException.php │ │ │ │ ├── Settings.php │ │ │ │ └── SmtpClient.php │ │ ├── OAuth2 │ │ │ ├── Client.php │ │ │ ├── GrantType │ │ │ │ ├── AuthorizationCode.php │ │ │ │ ├── ClientCredentials.php │ │ │ │ ├── IGrantType.php │ │ │ │ ├── Password.php │ │ │ │ └── RefreshToken.php │ │ │ ├── LICENSE │ │ │ └── README.md │ │ ├── RainLoop │ │ │ ├── Actions.php │ │ │ ├── Actions │ │ │ │ ├── Accounts.php │ │ │ │ ├── Admin.php │ │ │ │ ├── AdminDomains.php │ │ │ │ ├── AdminExtensions.php │ │ │ │ ├── Attachments.php │ │ │ │ ├── Contacts.php │ │ │ │ ├── Filters.php │ │ │ │ ├── Folders.php │ │ │ │ ├── Localization.php │ │ │ │ ├── Messages.php │ │ │ │ ├── Pgp.php │ │ │ │ ├── Raw.php │ │ │ │ ├── Response.php │ │ │ │ ├── SMime.php │ │ │ │ ├── Themes.php │ │ │ │ ├── User.php │ │ │ │ └── UserAuth.php │ │ │ ├── ActionsAdmin.php │ │ │ ├── Api.php │ │ │ ├── Config │ │ │ │ ├── AbstractConfig.php │ │ │ │ ├── Application.php │ │ │ │ └── Plugin.php │ │ │ ├── Enumerations │ │ │ │ ├── Capa.php │ │ │ │ ├── Layout.php │ │ │ │ ├── PluginPropertyType.php │ │ │ │ ├── SignMeType.php │ │ │ │ └── UploadError.php │ │ │ ├── Exceptions │ │ │ │ └── ClientException.php │ │ │ ├── KeyPathHelper.php │ │ │ ├── Model │ │ │ │ ├── Account.php │ │ │ │ ├── AdditionalAccount.php │ │ │ │ ├── Domain.php │ │ │ │ ├── Identity.php │ │ │ │ └── MainAccount.php │ │ │ ├── Notifications.php │ │ │ ├── Pdo │ │ │ │ ├── Base.php │ │ │ │ ├── Schema.php │ │ │ │ └── Settings.php │ │ │ ├── Plugins │ │ │ │ ├── AbstractPlugin.php │ │ │ │ ├── Helper.php │ │ │ │ ├── Manager.php │ │ │ │ ├── Property.php │ │ │ │ └── PropertyCollection.php │ │ │ ├── Providers │ │ │ │ ├── AbstractProvider.php │ │ │ │ ├── AddressBook.php │ │ │ │ ├── AddressBook │ │ │ │ │ ├── AddressBookInterface.php │ │ │ │ │ ├── CardDAV.php │ │ │ │ │ ├── Classes │ │ │ │ │ │ ├── Contact.php │ │ │ │ │ │ └── Property.php │ │ │ │ │ ├── Enumerations │ │ │ │ │ │ └── PropertyType.php │ │ │ │ │ ├── Legacy.php │ │ │ │ │ ├── PdoAddressBook.php │ │ │ │ │ ├── PdoSchema.php │ │ │ │ │ └── Utils.php │ │ │ │ ├── Domain.php │ │ │ │ ├── Domain │ │ │ │ │ ├── Autoconfig.php │ │ │ │ │ ├── DefaultDomain.php │ │ │ │ │ └── DomainInterface.php │ │ │ │ ├── Files.php │ │ │ │ ├── Files │ │ │ │ │ ├── FileStorage.php │ │ │ │ │ └── IFiles.php │ │ │ │ ├── Filters.php │ │ │ │ ├── Filters │ │ │ │ │ ├── FiltersInterface.php │ │ │ │ │ └── SieveStorage.php │ │ │ │ ├── Identities.php │ │ │ │ ├── Identities │ │ │ │ │ ├── FileIdentities.php │ │ │ │ │ └── IIdentities.php │ │ │ │ ├── Settings.php │ │ │ │ ├── Settings │ │ │ │ │ ├── DefaultSettings.php │ │ │ │ │ └── ISettings.php │ │ │ │ ├── Storage.php │ │ │ │ ├── Storage │ │ │ │ │ ├── Enumerations │ │ │ │ │ │ └── StorageType.php │ │ │ │ │ ├── FileStorage.php │ │ │ │ │ └── IStorage.php │ │ │ │ ├── Suggestions.php │ │ │ │ └── Suggestions │ │ │ │ │ └── ISuggestions.php │ │ │ ├── Service.php │ │ │ ├── ServiceActions.php │ │ │ ├── Settings.php │ │ │ └── Utils.php │ │ ├── Sabre │ │ │ ├── LICENSE │ │ │ ├── VObject │ │ │ │ ├── BirthdayCalendarGenerator.php │ │ │ │ ├── Cli.php │ │ │ │ ├── Component.php │ │ │ │ ├── Component │ │ │ │ │ ├── Available.php │ │ │ │ │ ├── VAlarm.php │ │ │ │ │ ├── VAvailability.php │ │ │ │ │ ├── VCalendar.php │ │ │ │ │ ├── VCard.php │ │ │ │ │ ├── VEvent.php │ │ │ │ │ ├── VFreeBusy.php │ │ │ │ │ ├── VJournal.php │ │ │ │ │ ├── VTimeZone.php │ │ │ │ │ └── VTodo.php │ │ │ │ ├── DateTimeParser.php │ │ │ │ ├── Document.php │ │ │ │ ├── ElementList.php │ │ │ │ ├── EofException.php │ │ │ │ ├── FreeBusyData.php │ │ │ │ ├── FreeBusyGenerator.php │ │ │ │ ├── ITip │ │ │ │ │ ├── Broker.php │ │ │ │ │ ├── ITipException.php │ │ │ │ │ ├── Message.php │ │ │ │ │ └── SameOrganizerForAllComponentsException.php │ │ │ │ ├── InvalidDataException.php │ │ │ │ ├── Node.php │ │ │ │ ├── PHPUnitAssertions.php │ │ │ │ ├── Parameter.php │ │ │ │ ├── ParseException.php │ │ │ │ ├── Parser │ │ │ │ │ ├── Json.php │ │ │ │ │ ├── MimeDir.php │ │ │ │ │ ├── Parser.php │ │ │ │ │ ├── XML.php │ │ │ │ │ └── XML │ │ │ │ │ │ └── Element │ │ │ │ │ │ └── KeyValue.php │ │ │ │ ├── Property.php │ │ │ │ ├── Property │ │ │ │ │ ├── Binary.php │ │ │ │ │ ├── Boolean.php │ │ │ │ │ ├── FlatText.php │ │ │ │ │ ├── FloatValue.php │ │ │ │ │ ├── ICalendar │ │ │ │ │ │ ├── CalAddress.php │ │ │ │ │ │ ├── Date.php │ │ │ │ │ │ ├── DateTime.php │ │ │ │ │ │ ├── Duration.php │ │ │ │ │ │ ├── Period.php │ │ │ │ │ │ └── Recur.php │ │ │ │ │ ├── IntegerValue.php │ │ │ │ │ ├── Text.php │ │ │ │ │ ├── Time.php │ │ │ │ │ ├── Unknown.php │ │ │ │ │ ├── Uri.php │ │ │ │ │ ├── UtcOffset.php │ │ │ │ │ ├── VCard │ │ │ │ │ │ ├── Date.php │ │ │ │ │ │ ├── DateAndOrTime.php │ │ │ │ │ │ ├── DateTime.php │ │ │ │ │ │ ├── LanguageTag.php │ │ │ │ │ │ ├── PhoneNumber.php │ │ │ │ │ │ └── TimeStamp.php │ │ │ │ │ └── XCrypto.php │ │ │ │ ├── Reader.php │ │ │ │ ├── Recur │ │ │ │ │ ├── EventIterator.php │ │ │ │ │ ├── MaxInstancesExceededException.php │ │ │ │ │ ├── NoInstancesException.php │ │ │ │ │ ├── RDateIterator.php │ │ │ │ │ └── RRuleIterator.php │ │ │ │ ├── Settings.php │ │ │ │ ├── Splitter │ │ │ │ │ ├── ICalendar.php │ │ │ │ │ ├── SplitterInterface.php │ │ │ │ │ └── VCard.php │ │ │ │ ├── StringUtil.php │ │ │ │ ├── TimeZoneUtil.php │ │ │ │ ├── TimezoneGuesser │ │ │ │ │ ├── FindFromOffset.php │ │ │ │ │ ├── FindFromTimezoneIdentifier.php │ │ │ │ │ ├── FindFromTimezoneMap.php │ │ │ │ │ ├── GuessFromLicEntry.php │ │ │ │ │ ├── GuessFromMsTzId.php │ │ │ │ │ ├── TimezoneFinder.php │ │ │ │ │ └── TimezoneGuesser.php │ │ │ │ ├── UUIDUtil.php │ │ │ │ ├── VCardConverter.php │ │ │ │ ├── Version.php │ │ │ │ ├── Writer.php │ │ │ │ └── timezonedata │ │ │ │ │ ├── exchangezones.php │ │ │ │ │ ├── lotuszones.php │ │ │ │ │ ├── php-bc.php │ │ │ │ │ ├── php-workaround.php │ │ │ │ │ └── windowszones.php │ │ │ └── Xml │ │ │ │ ├── ContextStackTrait.php │ │ │ │ ├── Deserializer │ │ │ │ └── functions.php │ │ │ │ ├── Element.php │ │ │ │ ├── Element │ │ │ │ ├── Base.php │ │ │ │ ├── Cdata.php │ │ │ │ ├── Elements.php │ │ │ │ ├── KeyValue.php │ │ │ │ ├── Uri.php │ │ │ │ └── XmlFragment.php │ │ │ │ ├── LibXMLException.php │ │ │ │ ├── ParseException.php │ │ │ │ ├── Reader.php │ │ │ │ ├── Serializer │ │ │ │ └── functions.php │ │ │ │ ├── Service.php │ │ │ │ ├── Version.php │ │ │ │ ├── Writer.php │ │ │ │ ├── XmlDeserializable.php │ │ │ │ └── XmlSerializable.php │ │ ├── TNEFDecoder │ │ │ ├── LICENSE │ │ │ ├── TNEFAttachment.php │ │ │ ├── TNEFBuffer.php │ │ │ ├── TNEFDate.php │ │ │ ├── TNEFFile.php │ │ │ ├── TNEFFileBase.php │ │ │ ├── TNEFFileRTF.php │ │ │ ├── TNEFMailinfo.php │ │ │ ├── TNEFvCard.php │ │ │ └── constants.php │ │ ├── lessphp │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── lessc.php │ │ ├── polyfill │ │ │ ├── ctype.php │ │ │ ├── intl.php │ │ │ └── php8.php │ │ └── snappymail │ │ │ ├── attachmentsaction.php │ │ │ ├── cookies.php │ │ │ ├── crypt.php │ │ │ ├── dav │ │ │ └── client.php │ │ │ ├── dns.php │ │ │ ├── file │ │ │ ├── magic.mime.php │ │ │ ├── mimetype.php │ │ │ └── temporary.php │ │ │ ├── gpg │ │ │ ├── base.php │ │ │ ├── pgp.php │ │ │ ├── pgpkeysettings.php │ │ │ ├── procpipes.php │ │ │ └── smime.php │ │ │ ├── hibp.php │ │ │ ├── http │ │ │ ├── csp.php │ │ │ ├── exception.php │ │ │ ├── request.php │ │ │ ├── request │ │ │ │ ├── curl.php │ │ │ │ └── socket.php │ │ │ ├── response.php │ │ │ ├── secfetch.php │ │ │ └── stream.php │ │ │ ├── idn.php │ │ │ ├── image.php │ │ │ ├── image │ │ │ ├── exif.php │ │ │ ├── gd2.php │ │ │ ├── gd2 │ │ │ │ └── imagerotate.inc │ │ │ ├── gmagick.php │ │ │ └── imagick.php │ │ │ ├── imap │ │ │ └── sync.php │ │ │ ├── integrity.php │ │ │ ├── intl │ │ │ ├── LICENSE │ │ │ ├── idn.php │ │ │ └── unidata │ │ │ │ ├── canonicalComposition.php │ │ │ │ ├── canonicalDecomposition.php │ │ │ │ ├── combiningClass.php │ │ │ │ ├── compatibilityDecomposition.php │ │ │ │ ├── deviation.php │ │ │ │ ├── disallowed.php │ │ │ │ ├── disallowed_STD3_mapped.php │ │ │ │ ├── disallowed_STD3_valid.php │ │ │ │ ├── ignored.php │ │ │ │ ├── mapped.php │ │ │ │ └── virama.php │ │ │ ├── jwt.php │ │ │ ├── l10n.php │ │ │ ├── log.php │ │ │ ├── pgp │ │ │ ├── backup.php │ │ │ ├── gnupg.php │ │ │ ├── keyservers.php │ │ │ ├── pecl.php │ │ │ └── pgpinterface.php │ │ │ ├── qrcode.php │ │ │ ├── repository.php │ │ │ ├── rtf │ │ │ ├── controlsymbol.php │ │ │ ├── controlword.php │ │ │ ├── document.php │ │ │ ├── encoding.php │ │ │ ├── entity.php │ │ │ ├── fontinfo.php │ │ │ ├── group.php │ │ │ ├── groups │ │ │ │ ├── colortable.php │ │ │ │ ├── destination.php │ │ │ │ ├── filetable.php │ │ │ │ ├── fonttable.php │ │ │ │ ├── generator.php │ │ │ │ ├── info.php │ │ │ │ ├── listoverridetable.php │ │ │ │ ├── listtable.php │ │ │ │ ├── listtext.php │ │ │ │ ├── pict.php │ │ │ │ └── stylesheet.php │ │ │ ├── htmlformatter.php │ │ │ └── text.php │ │ │ ├── sasl.php │ │ │ ├── sasl │ │ │ ├── cram.php │ │ │ ├── login.php │ │ │ ├── oauthbearer.php │ │ │ ├── plain.php │ │ │ ├── scram.php │ │ │ └── xoauth2.php │ │ │ ├── sensitivestring.php │ │ │ ├── shutdown.php │ │ │ ├── smime │ │ │ ├── certificate.php │ │ │ ├── openssl.cnf │ │ │ ├── openssl.php │ │ │ ├── snappymail.crt │ │ │ └── snappymail.key │ │ │ ├── stream │ │ │ ├── tar.php │ │ │ └── zip.php │ │ │ ├── tar.php │ │ │ ├── totp.php │ │ │ ├── upgrade.php │ │ │ └── uuid.php │ ├── localization │ │ ├── README │ │ ├── ar │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── be │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── bg │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── cs │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── da │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── de │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── el │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── en │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── es │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── et │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── eu │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── fa │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── fi │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── fr │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── hu │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── id │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── is │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── it │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── ja │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── ko │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── langs.json │ │ ├── lt │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── lv │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── nb │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── nl │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── pl │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── pt-BR │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── pt │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── ro │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── ru │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── sk │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── sl │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── sv │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── tr │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── uk │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── vi │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ ├── zh-TW │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ │ └── zh │ │ │ ├── admin.json │ │ │ ├── relativetimeformat.js │ │ │ ├── static.json │ │ │ └── user.json │ └── templates │ │ ├── Error.html │ │ ├── Index.html │ │ └── Views │ │ ├── Admin │ │ ├── AdminLogin.html │ │ ├── AdminMenu.html │ │ ├── AdminPane.html │ │ ├── AdminSettingsAbout.html │ │ ├── AdminSettingsBranding.html │ │ ├── AdminSettingsConfig.html │ │ ├── AdminSettingsContacts.html │ │ ├── AdminSettingsDomains.html │ │ ├── AdminSettingsGeneral.html │ │ ├── AdminSettingsLogin.html │ │ ├── AdminSettingsPackages.html │ │ ├── AdminSettingsPackagesTable.html │ │ ├── AdminSettingsPluginProperty.html │ │ ├── AdminSettingsSecurity.html │ │ ├── PopupsDomain.html │ │ ├── PopupsDomainAlias.html │ │ └── PopupsPlugin.html │ │ ├── Common │ │ ├── Paginator.html │ │ ├── PopupsAsk.html │ │ └── PopupsLanguages.html │ │ ├── Components │ │ ├── Checkbox.html │ │ └── Select.html │ │ └── User │ │ ├── Login.html │ │ ├── MailFolderList.html │ │ ├── MailFolderListItem.html │ │ ├── MailMessageList.html │ │ ├── MailMessageView.html │ │ ├── PopupsAccount.html │ │ ├── PopupsAdvancedSearch.html │ │ ├── PopupsCompose.html │ │ ├── PopupsContacts.html │ │ ├── PopupsFilter.html │ │ ├── PopupsFolder.html │ │ ├── PopupsFolderACL.html │ │ ├── PopupsFolderClear.html │ │ ├── PopupsFolderCreate.html │ │ ├── PopupsFolderSystem.html │ │ ├── PopupsIdentity.html │ │ ├── PopupsKeyboardShortcutsHelp.html │ │ ├── PopupsOpenPgpGenerate.html │ │ ├── PopupsOpenPgpImport.html │ │ ├── PopupsOpenPgpKey.html │ │ ├── PopupsSMimeImport.html │ │ ├── PopupsSieveScript.html │ │ ├── SettingsAccounts.html │ │ ├── SettingsContacts.html │ │ ├── SettingsFilters.html │ │ ├── SettingsFiltersActionDiscard.html │ │ ├── SettingsFiltersActionForward.html │ │ ├── SettingsFiltersActionMoveToFolder.html │ │ ├── SettingsFiltersActionNone.html │ │ ├── SettingsFiltersActionReject.html │ │ ├── SettingsFiltersActionVacation.html │ │ ├── SettingsFiltersConditionBody.html │ │ ├── SettingsFiltersConditionDefault.html │ │ ├── SettingsFiltersConditionMore.html │ │ ├── SettingsFiltersConditionSize.html │ │ ├── SettingsFolderItem.html │ │ ├── SettingsFolders.html │ │ ├── SettingsGeneral.html │ │ ├── SettingsMenu.html │ │ ├── SettingsPane.html │ │ ├── SettingsSecurity.html │ │ ├── SettingsThemes.html │ │ └── SystemDropDown.html │ ├── cpanel.php │ ├── imapsync.php │ ├── include.php │ ├── index.php │ ├── setup.php │ ├── static │ ├── android-icon.png │ ├── apache.htaccess │ ├── apple-touch-icon.png │ ├── favicon-light.ico │ ├── favicon-light.png │ ├── favicon.ico │ ├── favicon.png │ ├── favicon.svg │ ├── images │ │ ├── icon-message-notification.png │ │ └── snappymail-logo.png │ ├── logo-512.png │ ├── manifest.json │ └── sounds │ │ ├── alert.mp3 │ │ ├── alert.ogg │ │ ├── new-mail.mp3 │ │ ├── new-mail.ogg │ │ ├── ping.mp3 │ │ └── ping.ogg │ └── themes │ ├── A │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── BlackWood │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Blurred │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── BlurredDark │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Clear │ ├── images │ │ └── preview.png │ └── styles.css │ ├── DarkShine │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Default │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── Linen │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── Love │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── LoveDark │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Magnetic │ ├── images │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── NextcloudV25+ │ ├── images │ │ └── preview.png │ └── styles.css │ ├── NightShine │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Snow │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── SnowDarkV1 │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Squares │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── SquaresDark │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── Stripes │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── StripesDark │ ├── images │ │ ├── background.jpg │ │ └── preview.png │ └── styles.css │ ├── Wood │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ ├── Xv │ ├── images │ │ ├── background.jpg │ │ ├── background.png │ │ └── preview.png │ └── styles.css │ └── example.css ├── tasks ├── common.js ├── config.js ├── css.js ├── js.js ├── rollup.js └── vendors.js ├── template.env ├── test ├── carddav.php ├── sasl.php └── sso.php ├── vendors ├── bootstrap │ ├── LICENSE │ ├── js │ │ └── bootstrap.native.js │ └── less │ │ ├── alerts.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── close.less │ │ ├── code.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── grid.less │ │ ├── mixins.less │ │ ├── tables.less │ │ ├── type.less │ │ ├── utilities.less │ │ └── variables.less ├── fontastic │ ├── fonts │ │ ├── snappymail.woff │ │ └── snappymail.woff2 │ ├── icons-reference.html │ └── styles.css ├── jua │ └── jua.js ├── knockout │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── build │ │ ├── fragments │ │ │ ├── extern-post.js │ │ │ ├── extern-pre.js │ │ │ └── source-references.js │ │ └── output │ │ │ ├── knockout-latest.debug.js │ │ │ └── knockout-latest.js │ ├── package.json │ └── src │ │ ├── binding │ │ ├── bindingAttributeSyntax.js │ │ ├── bindingProvider.js │ │ ├── defaultBindings │ │ │ ├── attr.js │ │ │ ├── checked.js │ │ │ ├── click.js │ │ │ ├── css.js │ │ │ ├── enableDisable.js │ │ │ ├── event.js │ │ │ ├── foreach.js │ │ │ ├── hasfocus.js │ │ │ ├── html.js │ │ │ ├── ifIfnotWith.js │ │ │ ├── options.js │ │ │ ├── style.js │ │ │ ├── submit.js │ │ │ ├── text.js │ │ │ ├── textInput.js │ │ │ ├── value.js │ │ │ └── visibleHidden.js │ │ ├── editDetection │ │ │ ├── arrayToDomNodeChildren.js │ │ │ └── compareArrays.js │ │ ├── expressionRewriting.js │ │ └── selectExtensions.js │ │ ├── components │ │ ├── componentBinding.js │ │ └── loaderRegistry.js │ │ ├── google-closure-compiler-utils.js │ │ ├── namespace.js │ │ ├── subscribables │ │ ├── dependencyDetection.js │ │ ├── dependentObservable.js │ │ ├── extenders.js │ │ ├── observable.js │ │ ├── observableArray.changeTracking.js │ │ ├── observableArray.js │ │ └── subscribable.js │ │ ├── tasks.js │ │ ├── templating │ │ ├── templateSources.js │ │ └── templating.js │ │ ├── utils.domData.js │ │ ├── utils.domNodeDisposal.js │ │ ├── utils.js │ │ ├── version.js │ │ └── virtualElements.js ├── marked │ └── marked.js ├── mathiasbynens │ └── punycode.js ├── normalize.css │ ├── CHANGELOG.md │ ├── LICENSE.md │ ├── README.md │ └── normalize.css ├── openpgp-5 │ ├── README.md │ └── dist │ │ └── openpgp.js ├── routes │ ├── crossroads.js │ └── hasher.js ├── squire2 │ └── dist │ │ └── squire-raw.js └── turndown │ └── turndown.js └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | last 1 version 2 | > 30% 3 | not IE 11 4 | not IE_Mob 11 5 | -------------------------------------------------------------------------------- /.cmds: -------------------------------------------------------------------------------- 1 | 2 | # yarn 3 | yarn install 4 | yarn upgrade xxx@1.2.3 5 | 6 | # transifex 7 | tx pull -a 8 | 9 | # dependencies 10 | yarn outdated 11 | yarn upgrade-interactive --exact --latest 12 | 13 | # webpack 14 | webpack --color --watch 15 | 16 | # 17 | gpg --import x 18 | gpg --detach-sign --armor --openpgp -u 87DA4591 --passphrase ?? x 19 | for ff in `ls ./build/dist/releases/**/**/*.zip | xargs`; do gpg --detach-sign --no-tty --yes --armor --openpgp -u 87DA4591 --passphrase ?? $ff; done 20 | -------------------------------------------------------------------------------- /.docker/dev/mail/config/dovecot-quotas.cf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/.docker/dev/mail/config/dovecot-quotas.cf -------------------------------------------------------------------------------- /.docker/dev/php/snappymail.ini: -------------------------------------------------------------------------------- 1 | date.timezone = UTC 2 | upload_max_filesize = 24M 3 | post_max_size = 25M 4 | 5 | # log_errors = On 6 | # display_errors = On 7 | # error_reporting = E_ALL 8 | # error_log = /dev/stderr 9 | -------------------------------------------------------------------------------- /.docker/release/files/snappymail/include.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /.docker/release/test/build_and_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script uses docker buildx to build a docker image, and loads it into the docker daemon. Then it executes ./test.sh to test the docker image 3 | # It is useful for testing release builds in development 4 | set -eu 5 | IMAGE=snappymail/snappymail:test 6 | DOCKER_BUILDX=1 docker build -t "$IMAGE" -f .docker/release/Dockerfile . 7 | .docker/release/test/test.sh "$IMAGE" 8 | -------------------------------------------------------------------------------- /.docker/release/test/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script tests a given docker image using https://github.com/GoogleContainerTools/container-structure-test 3 | set -eu 4 | SCRIPT_DIR=$( cd "$(dirname "$0")" && pwd ) 5 | IMAGE=${1:-} 6 | echo "Testing image: $IMAGE" 7 | docker run --rm -i \ 8 | -v /var/run/docker.sock:/var/run/docker.sock:ro \ 9 | -v "$SCRIPT_DIR/config.yaml:/config.yaml:ro" \ 10 | gcr.io/gcp-runtimes/container-structure-test:latest test --image "$IMAGE" --config config.yaml 11 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | /.git 2 | /node_modules 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.php] 2 | indent_style = tab -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | *.* 2 | !/dev/**/*.js 3 | !/tasks/**/*.js 4 | !/*.js -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: the-djmaze 2 | custom: ["https://www.paypal.me/thedjmaze", "https://snappymail.eu"] 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | **SnappyMail version, browser, browser version:** 3 | 4 | **Expected behavior and actual behavior:** 5 | 6 | **Steps to reproduce the problem:** 7 | 8 | **Logs or screenshots:** 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendors/openpgp-5"] 2 | path = vendors/openpgp-5 3 | url = git@github.com:the-djmaze/openpgpjs.git 4 | [submodule "vendors/squire2"] 5 | path = vendors/squire2 6 | url = git@github.com:the-djmaze/Squire.git 7 | branch = snappymail 8 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.* 2 | !/dev/**/*.js 3 | !/tasks/**/*.js 4 | !/*.js 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "semi": true, 4 | "singleQuote": true, 5 | "useTabs": true, 6 | "bracketSpacing": true, 7 | "trailingComma": "none", 8 | "arrowParens": "always", 9 | "endOfLine": "lf", 10 | "quoteProps": "preserve", 11 | "overrides": [ 12 | { 13 | "files": "*.js", 14 | "options": { 15 | "parser": "babel" 16 | } 17 | }, 18 | { 19 | "files": "*.jsx", 20 | "options": { 21 | "parser": "babel" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /build/SnappyMail.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mDMEYg0atBYJKwYBBAHaRw8BAQdA2S2tvGavChACjtBastsKRThD3rsBW1LUZLmN 4 | Zbs4uaG0I1NuYXBweU1haWwgPHJlbGVhc2VzQHNuYXBweW1haWwuZXU+iJQEExYK 5 | ADwWIQQQFuRweRRVQvi6EzVIIIuhMpDz6wUCYg0atAIbAwULCQgHAgMiAgEGFQoJ 6 | CAsCBBYCAwECHgcCF4AACgkQSCCLoTKQ8+u9SAD/Q/IoAwjUkKDJBPq0RGwCFnl6 7 | FG/VHB97CvBSpGOxtIsBAMCwMhWlsaBHAEqbzxiN+cdlMYwV23+SWLUJ/XMFgukE 8 | =5ZwF 9 | -----END PGP PUBLIC KEY BLOCK----- 10 | -------------------------------------------------------------------------------- /build/arch/snappymail.sysusers: -------------------------------------------------------------------------------- 1 | u snappymail - "Snappymail User" /var/lib/snappymail 2 | -------------------------------------------------------------------------------- /build/arch/snappymail.tmpfiles: -------------------------------------------------------------------------------- 1 | Z /var/lib/snappymail - snappymail snappymail 2 | -------------------------------------------------------------------------------- /build/deb/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | chown -R www-data:www-data /var/lib/snappymail 3 | chown -R root:root /usr/share/snappymail/ 4 | -------------------------------------------------------------------------------- /build/phpseclib/openssl.cnf: -------------------------------------------------------------------------------- 1 | # minimalist openssl.cnf file for use with phpseclib 2 | 3 | HOME = . 4 | RANDFILE = $ENV::HOME/.rnd 5 | 6 | [ v3_ca ] 7 | -------------------------------------------------------------------------------- /build/test_connection.php: -------------------------------------------------------------------------------- 1 | { 10 | const list = IdentityUserStore(); 11 | return isArray(list) ? list.find(item => item && !item.id()) : null; 12 | }); 13 | -------------------------------------------------------------------------------- /dev/Stores/User/Sieve.js: -------------------------------------------------------------------------------- 1 | import { koArrayWithDestroy } from 'External/ko'; 2 | 3 | export const SieveUserStore = { 4 | // capabilities 5 | capa: ko.observableArray(), 6 | // Sieve scripts SieveScriptModel 7 | scripts: koArrayWithDestroy() 8 | } 9 | -------------------------------------------------------------------------------- /dev/Styles/Admin/About.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-About { 3 | .rl-logo { 4 | display: inline-block; 5 | width: 250px; 6 | height: 200px; 7 | /* Yes this LESS css relative path quirk becomes ../ */ 8 | background: url(../../images/snappymail-logo.png) -30px -30px; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /dev/Styles/Admin/Branding.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-Branding { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /dev/Styles/Admin/Config.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-Config { 3 | user-select: text; 4 | 5 | em { 6 | display: block; 7 | white-space: pre-wrap; 8 | } 9 | 10 | th { 11 | background: rgba(128,128,128,0.3); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /dev/Styles/Admin/Domains.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-Domains { 3 | table { 4 | width: 600px; 5 | } 6 | 7 | .domain-name { 8 | display: inline-block; 9 | word-break: break-all; 10 | } 11 | 12 | .domain-alias { 13 | display: inline-block; 14 | color: #bbb; 15 | padding-left: 5px; 16 | } 17 | 18 | .delete-domain, .disabled-domain { 19 | cursor: pointer; 20 | } 21 | .delete-domain:not(:hover), .disabled-domain:not(:hover) { 22 | opacity: 0.5; 23 | } 24 | 25 | tr.disabled { 26 | .domain-name, .domain-alias { 27 | color: #bbb; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /dev/Styles/Admin/General.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-General { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /dev/Styles/Ask.less: -------------------------------------------------------------------------------- 1 | #V-PopupsAsk { 2 | 3 | .modal-body { 4 | font-size: 128%; 5 | padding: 3em 15px; 6 | text-align: center; 7 | } 8 | 9 | button:focus { 10 | box-shadow: 0 0 1px inset; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /dev/Styles/User/AdvancedSearch.less: -------------------------------------------------------------------------------- 1 | #V-PopupsAdvancedSearch { 2 | max-width: 780px; 3 | label { 4 | width: 110px; 5 | } 6 | } 7 | #advancedsearchform > div { 8 | display: inline-block; 9 | vertical-align: top; 10 | margin-right:1em; 11 | } 12 | 13 | @media screen and (max-width: 480px) { 14 | #advancedsearchform label { 15 | width: 100%; 16 | } 17 | #advancedsearchform label + * { 18 | margin-left: 0; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /dev/Styles/User/Filter.less: -------------------------------------------------------------------------------- 1 | #V-PopupsFilter { 2 | 3 | max-width: 750px; 4 | 5 | .button-delete { 6 | cursor: pointer; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /dev/Styles/User/Identity.less: -------------------------------------------------------------------------------- 1 | #V-PopupsIdentity { 2 | 3 | max-width: 770px; 4 | 5 | .tab-content { 6 | grid-column-end: 5; 7 | padding-top: 20px; 8 | } 9 | 10 | .e-signature-place { 11 | border: 1px solid #ccc; 12 | border-radius: var(--input-border-radius, 3px); 13 | margin-bottom: 1.43em; 14 | } 15 | 16 | .textEmail { 17 | margin-top: 5px; 18 | font-weight: bold; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /dev/Styles/User/OpenPgpKey.less: -------------------------------------------------------------------------------- 1 | #V-PopupsOpenPgpKey, #V-PopupsOpenPgpGenerate { 2 | max-width: 570px; 3 | } 4 | 5 | #V-PopupsOpenPgpKey { 6 | pre { 7 | margin: 0; 8 | max-height: 500px; 9 | padding: 0; 10 | overflow: auto; 11 | } 12 | } 13 | 14 | #V-PopupsOpenPgpImport { 15 | max-width: 645px; 16 | 17 | textarea { 18 | font-family: var(--fontMono); 19 | width: 600px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /dev/Styles/User/SettingsGeneral.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-General { 3 | .editMainIdentity { 4 | border-bottom: 1px dashed #555; 5 | cursor: pointer; 6 | display: inline-block; 7 | padding: 5px 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /dev/Styles/User/SettingsSecurity.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-Security { 3 | 4 | td * { 5 | cursor: pointer; 6 | } 7 | td + td { 8 | width: 1%; 9 | } 10 | 11 | .key-user { 12 | margin: 0 0.5em; 13 | white-space: nowrap; 14 | } 15 | 16 | .delete-key:not(:hover) { 17 | opacity: 0.7; 18 | } 19 | 20 | iframe { 21 | max-width: 991px; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /dev/Styles/User/SettingsThemes.less: -------------------------------------------------------------------------------- 1 | 2 | #V-Settings-Themes { 3 | 4 | figure { 5 | 6 | display: inline-block; 7 | border: 2px solid transparent; 8 | cursor: pointer; 9 | padding: 8px; 10 | margin: 5px; 11 | min-width: 148px; 12 | 13 | &:hover { 14 | border-color: grey; 15 | } 16 | 17 | &.selected { 18 | background-color: rgba(64, 255, 64, 0.2); 19 | border-color: #000; 20 | } 21 | 22 | figcaption { 23 | padding: 0 0 8px 0; 24 | text-align: center; 25 | } 26 | 27 | img { 28 | height: 128px; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /dev/Styles/User/Shortcuts.less: -------------------------------------------------------------------------------- 1 | #V-PopupsKeyboardShortcutsHelp { 2 | max-width: 700px; 3 | 4 | td[class^="icon-"] { 5 | display: table-cell; 6 | } 7 | 8 | .tab-content { 9 | grid-column-end: 5; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /dev/Styles/_Values.less: -------------------------------------------------------------------------------- 1 | 2 | @rlLeftWidth: 200px; 3 | @rlLowMargin: 8px; 4 | 5 | /* mobile and tablet */ 6 | @maxMobileWidth: 799px; 7 | 8 | :root { 9 | --smDialogShrink: 20px; 10 | --smMainShadow: 0 2px 8px rgba(0, 0, 0, 0.2); 11 | } 12 | /* For Firefox */ 13 | @media screen and (max-width: @maxMobileWidth) { 14 | :root { 15 | --smDialogShrink: 25px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /dev/View/Admin/Settings/Menu.js: -------------------------------------------------------------------------------- 1 | import { AbstractViewLeft } from 'Knoin/AbstractViews'; 2 | 3 | class MenuSettingsAdminView extends AbstractViewLeft { 4 | /** 5 | * @param {?} screen 6 | */ 7 | constructor(screen) { 8 | super('AdminMenu'); 9 | 10 | this.menu = screen.menu; 11 | } 12 | 13 | link(route) { 14 | return '#/' + route; 15 | } 16 | } 17 | 18 | export { MenuSettingsAdminView }; 19 | -------------------------------------------------------------------------------- /dev/View/Admin/Settings/Pane.js: -------------------------------------------------------------------------------- 1 | import Remote from 'Remote/Admin/Fetch'; 2 | 3 | import { AbstractViewRight } from 'Knoin/AbstractViews'; 4 | 5 | import { toggleLeftPanel } from 'Common/Globals'; 6 | 7 | export class PaneSettingsAdminView extends AbstractViewRight { 8 | constructor() { 9 | super('AdminPane'); 10 | this.toggleLeftPanel = toggleLeftPanel; 11 | } 12 | 13 | logoutClick() { 14 | Remote.request('AdminLogout', () => rl.logoutReload()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /dev/View/User/Settings/Menu.js: -------------------------------------------------------------------------------- 1 | import { settings } from 'Common/Links'; 2 | import { mailbox } from 'Common/Links'; 3 | import { getFolderInboxName } from 'Common/Cache'; 4 | import { AbstractViewLeft } from 'Knoin/AbstractViews'; 5 | 6 | export class SettingsMenuUserView extends AbstractViewLeft { 7 | /** 8 | * @param {Object} screen 9 | */ 10 | constructor(screen) { 11 | super(); 12 | 13 | this.menu = screen.menu; 14 | } 15 | 16 | link(route) { 17 | return settings(route); 18 | } 19 | 20 | backToInbox() { 21 | hasher.setHash(mailbox(getFolderInboxName())); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /dev/admin.js: -------------------------------------------------------------------------------- 1 | import bootstrap from 'bootstrap'; 2 | import { AdminApp } from 'App/Admin'; 3 | 4 | bootstrap(new AdminApp); 5 | -------------------------------------------------------------------------------- /dev/app.js: -------------------------------------------------------------------------------- 1 | import bootstrap from 'bootstrap'; 2 | import { AppUser } from 'App/User'; 3 | 4 | bootstrap(new AppUser); 5 | -------------------------------------------------------------------------------- /dev/serviceworker.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | self.addEventListener('message', event => self.client = event.source); 4 | 5 | const fn = event => { 6 | self.client.postMessage( 7 | JSON.stringify({ 8 | data: event.notification.data, 9 | action: event.type 10 | }) 11 | ); 12 | }; 13 | 14 | self.onnotificationclose = fn; 15 | self.onnotificationclick = fn; 16 | -------------------------------------------------------------------------------- /fail2ban/filter.d/snappymail-fpm-journal.conf: -------------------------------------------------------------------------------- 1 | [INCLUDES] 2 | before = common.conf 3 | [Definition] 4 | failregex = Auth failed: ip= user=.*$ 5 | ignoreregex = 6 | _daemon = php-fpm 7 | journalmatch = _SYSTEMD_UNIT=php-fpm.service SYSLOG_FACILITY=10 8 | #journalmatch = _SYSTEMD_UNIT=php-fpm.service SYSLOG_FACILITY=10 SYSLOG_IDENTIFIER=snappymail PRIORITY=3 9 | -------------------------------------------------------------------------------- /fail2ban/filter.d/snappymail-log.conf: -------------------------------------------------------------------------------- 1 | [INCLUDES] 2 | #before = common.conf 3 | [Definition] 4 | failregex = Auth failed: ip= user=.* host=.* port=.*$ 5 | ignoreregex = 6 | -------------------------------------------------------------------------------- /fail2ban/jail.d/snappymail-fpm-journal.conf: -------------------------------------------------------------------------------- 1 | [snappymail-fpm-journal] 2 | filter = snappymail-fpm-journal 3 | port = http,https,2096 4 | backend = systemd 5 | maxretry = 3 6 | -------------------------------------------------------------------------------- /fail2ban/jail.d/snappymail-log.conf: -------------------------------------------------------------------------------- 1 | [snappymail-log] 2 | filter = snappymail-log 3 | port = http,https,2096 4 | logpath = /PATH-TO-SNAPPYMAIL-DATA/_data_/_default_/logs/fail2ban/auth-fail.log 5 | maxretry = 3 6 | -------------------------------------------------------------------------------- /integrations/cpanel/var/cpanel/webmail/webmail_snappymail.yaml: -------------------------------------------------------------------------------- 1 | url: "/3rdparty/snappymail/?RemoteAutoLogin" 2 | displayname: "SnappyMail" 3 | icon: "/3rdparty/snappymail/snappymail/v/2.22.1/static/logo-text.png" 4 | -------------------------------------------------------------------------------- /integrations/nextcloud/screenshots/help_a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/screenshots/help_a1.png -------------------------------------------------------------------------------- /integrations/nextcloud/screenshots/help_a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/screenshots/help_a2.png -------------------------------------------------------------------------------- /integrations/nextcloud/screenshots/inbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/screenshots/inbox.jpg -------------------------------------------------------------------------------- /integrations/nextcloud/screenshots/nextcloud-admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/screenshots/nextcloud-admin.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/app/themes/Nextcloud/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/snappymail/app/themes/Nextcloud/images/preview.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/css/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Empty style sheet! 3 | Only needed to give you the opportunity to theme the owncloud part 4 | of the snappymail app with the theming system integrated in ownCoud 5 | if the snappymail app is activated. 6 | */ 7 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/img/favicon-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/snappymail/img/favicon-touch.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/snappymail/img/favicon.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/img/logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/snappymail/img/logo-64x64.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/img/logo-white-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/integrations/nextcloud/snappymail/img/logo-white-64x64.png -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/af.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-pos", 5 | "Error" : "Fout", 6 | "Save" : "Stoor", 7 | "Password" : "Wagwoord" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/af.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-pos", 3 | "Error" : "Fout", 4 | "Save" : "Stoor", 5 | "Password" : "Wagwoord" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/an.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correu electronico", 5 | "Error" : "Error", 6 | "Password" : "Clau" 7 | }, 8 | "nplurals=2; plural=(n != 1);"); 9 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/an.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correu electronico", 3 | "Error" : "Error", 4 | "Password" : "Clau" 5 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 6 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ast.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "Fallu", 6 | "Save" : "Guardar", 7 | "Password" : "Password" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ast.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "Fallu", 4 | "Save" : "Guardar", 5 | "Password" : "Password" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/az.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Email", 5 | "Error" : "Səhv", 6 | "Save" : "Saxla", 7 | "Password" : "Şifrə" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/az.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Email", 3 | "Error" : "Səhv", 4 | "Save" : "Saxla", 5 | "Password" : "Şifrə" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/be.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "Памылка", 6 | "Save" : "Save", 7 | "Password" : "Password" 8 | }, 9 | "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/be.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "Памылка", 4 | "Save" : "Save", 5 | "Password" : "Password" 6 | },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/bn_BD.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "ইমেইল", 5 | "Error" : "সমস্যা", 6 | "Save" : "সংরক্ষণ", 7 | "Password" : "কূটশব্দ" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/bn_BD.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "ইমেইল", 3 | "Error" : "সমস্যা", 4 | "Save" : "সংরক্ষণ", 5 | "Password" : "কূটশব্দ" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/bs.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-pošta", 5 | "Error" : "Greška", 6 | "Save" : "Spremi", 7 | "Password" : "Lozinka" 8 | }, 9 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/bs.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-pošta", 3 | "Error" : "Greška", 4 | "Save" : "Spremi", 5 | "Password" : "Lozinka" 6 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/cy_GB.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-bost", 5 | "Error" : "Gwall", 6 | "Save" : "Cadw", 7 | "Password" : "Cyfrinair" 8 | }, 9 | "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/cy_GB.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-bost", 3 | "Error" : "Gwall", 4 | "Save" : "Cadw", 5 | "Password" : "Cyfrinair" 6 | },"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/en_GB.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Email", 5 | "Error" : "Error", 6 | "Save" : "Save", 7 | "Password" : "Password" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/en_GB.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Email", 3 | "Error" : "Error", 4 | "Save" : "Save", 5 | "Password" : "Password" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/eo.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Retpoŝtadreso", 5 | "Error" : "Eraro", 6 | "Save" : "Konservi", 7 | "Password" : "Pasvorto" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/eo.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Retpoŝtadreso", 3 | "Error" : "Eraro", 4 | "Save" : "Konservi", 5 | "Password" : "Pasvorto" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_419.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_419.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_AR.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_AR.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CL.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CL.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CR.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_CR.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_DO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_DO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_EC.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_EC.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_GT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_GT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_HN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_HN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_MX.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_MX.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_NI.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_NI.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PA.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PA.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PE.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PE.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PR.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PR.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PY.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_PY.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_SV.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_SV.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_UY.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Correo electrónico", 5 | "Error" : "Error", 6 | "Save" : "Guardar", 7 | "Password" : "Contraseña" 8 | }, 9 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/es_UY.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Correo electrónico", 3 | "Error" : "Error", 4 | "Save" : "Guardar", 5 | "Password" : "Contraseña" 6 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/et_EE.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Epost", 5 | "Error" : "Viga", 6 | "Save" : "Salvesta", 7 | "Password" : "Parool" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/et_EE.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Epost", 3 | "Error" : "Viga", 4 | "Save" : "Salvesta", 5 | "Password" : "Parool" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fa.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "خطا", 6 | "Save" : "ذخیره", 7 | "Password" : "کلمه عبور" 8 | }, 9 | "nplurals=2; plural=(n > 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fa.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "خطا", 4 | "Save" : "ذخیره", 5 | "Password" : "کلمه عبور" 6 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fi.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Sähköposti", 5 | "Error" : "Virhe", 6 | "Invalid argument(s)" : "Yksi tai useampi virheellinen argumentti", 7 | "Saved successfully" : "Tallennettu onnistuneesti", 8 | "RainLoop" : "RainLoop", 9 | "Save" : "Tallenna", 10 | "RainLoop Webmail is not configured yet." : "RainLoop Webmailia ei ole vielä määritetty.", 11 | "Password" : "Salasana" 12 | }, 13 | "nplurals=2; plural=(n != 1);"); 14 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fi.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Sähköposti", 3 | "Error" : "Virhe", 4 | "Invalid argument(s)" : "Yksi tai useampi virheellinen argumentti", 5 | "Saved successfully" : "Tallennettu onnistuneesti", 6 | "SnappyMail" : "SnappyMail", 7 | "Save" : "Tallenna", 8 | "SnappyMail Webmail is not configured yet." : "SnappyMail Webmailia ei ole vielä määritetty.", 9 | "Password" : "Salasana" 10 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 11 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fo.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "T-post", 5 | "Password" : "Loyniorð" 6 | }, 7 | "nplurals=2; plural=(n != 1);"); 8 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/fo.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "T-post", 3 | "Password" : "Loyniorð" 4 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 5 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/gd.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Post-d", 5 | "Error" : "Mearachd", 6 | "Save" : "Sàbhail", 7 | "Password" : "Facal-faire" 8 | }, 9 | "nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/gd.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Post-d", 3 | "Error" : "Mearachd", 4 | "Save" : "Sàbhail", 5 | "Password" : "Facal-faire" 6 | },"pluralForm" :"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/hy.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Էլ․փոստ", 5 | "Error" : "Սխալ", 6 | "Save" : "Պահպանել", 7 | "Password" : "Գաղտնաբառ" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/hy.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Էլ․փոստ", 3 | "Error" : "Սխալ", 4 | "Save" : "Պահպանել", 5 | "Password" : "Գաղտնաբառ" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ia.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-posta", 5 | "Error" : "Error", 6 | "Save" : "Salveguardar", 7 | "Password" : "Contrasigno" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ia.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-posta", 3 | "Error" : "Error", 4 | "Save" : "Salveguardar", 5 | "Password" : "Contrasigno" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/id.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Surel", 5 | "Error" : "Kesalahan", 6 | "Save" : "Simpan", 7 | "Password" : "Kata kunci" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/id.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Surel", 3 | "Error" : "Kesalahan", 4 | "Save" : "Simpan", 5 | "Password" : "Kata kunci" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ka.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Password" : "პაროლი" 5 | }, 6 | "nplurals=2; plural=(n!=1);"); 7 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ka.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Password" : "პაროლი" 3 | },"pluralForm" :"nplurals=2; plural=(n!=1);" 4 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ka_GE.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "ელ-ფოსტა", 5 | "Error" : "შეცდომა", 6 | "Save" : "შენახვა", 7 | "Password" : "პაროლი" 8 | }, 9 | "nplurals=2; plural=(n!=1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ka_GE.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "ელ-ფოსტა", 3 | "Error" : "შეცდომა", 4 | "Save" : "შენახვა", 5 | "Password" : "პაროლი" 6 | },"pluralForm" :"nplurals=2; plural=(n!=1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/kab.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Imayl", 5 | "Error" : "Erreur", 6 | "Save" : "Sekles", 7 | "Password" : "Awal uffir" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/kab.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Imayl", 3 | "Error" : "Erreur", 4 | "Save" : "Sekles", 5 | "Password" : "Awal uffir" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/km.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "អ៊ីមែល", 5 | "Error" : "កំហុស", 6 | "Save" : "រក្សាទុក", 7 | "Password" : "ពាក្យសម្ងាត់" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/km.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "អ៊ីមែល", 3 | "Error" : "កំហុស", 4 | "Save" : "រក្សាទុក", 5 | "Password" : "ពាក្យសម្ងាត់" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/kn.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "ಇ-ಅಂಚೆ", 5 | "Error" : "ತಪ್ಪಾಗಿದೆ", 6 | "Save" : "ಉಳಿಸಿ", 7 | "Password" : "ಗುಪ್ತ ಪದ" 8 | }, 9 | "nplurals=2; plural=(n > 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/kn.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "ಇ-ಅಂಚೆ", 3 | "Error" : "ತಪ್ಪಾಗಿದೆ", 4 | "Save" : "ಉಳಿಸಿ", 5 | "Password" : "ಗುಪ್ತ ಪದ" 6 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ko.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "이메일", 5 | "Error" : "오류", 6 | "Save" : "저장", 7 | "Password" : "암호" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ko.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "이메일", 3 | "Error" : "오류", 4 | "Save" : "저장", 5 | "Password" : "암호" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lb.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Email", 5 | "Error" : "Fehler", 6 | "Save" : "Späicheren", 7 | "Password" : "Passwuert" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lb.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Email", 3 | "Error" : "Fehler", 4 | "Save" : "Späicheren", 5 | "Password" : "Passwuert" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lo.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "ອິເມວ", 5 | "Error" : "ຜິດພາດ", 6 | "Save" : "ບັນທຶກ", 7 | "Password" : "ລະຫັດຜ່ານ" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lo.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "ອິເມວ", 3 | "Error" : "ຜິດພາດ", 4 | "Save" : "ບັນທຶກ", 5 | "Password" : "ລະຫັດຜ່ານ" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lt_LT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "El. paštas", 5 | "Error" : "Klaida", 6 | "Saved successfully" : "Sėkmingai įrašyta", 7 | "Save" : "Įrašyti", 8 | "Password" : "Slaptažodis" 9 | }, 10 | "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); 11 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lt_LT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "El. paštas", 3 | "Error" : "Klaida", 4 | "Saved successfully" : "Sėkmingai įrašyta", 5 | "Save" : "Įrašyti", 6 | "Password" : "Slaptažodis" 7 | },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" 8 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lv.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-pasts", 5 | "Error" : "Kļūda", 6 | "Save" : "Saglabāt", 7 | "Password" : "Parole" 8 | }, 9 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/lv.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-pasts", 3 | "Error" : "Kļūda", 4 | "Save" : "Saglabāt", 5 | "Password" : "Parole" 6 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/mk.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Е-пошта", 5 | "Error" : "Грешка", 6 | "Save" : "Зачувај", 7 | "Password" : "Лозинка" 8 | }, 9 | "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/mk.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Е-пошта", 3 | "Error" : "Грешка", 4 | "Save" : "Зачувај", 5 | "Password" : "Лозинка" 6 | },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/mn.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Цахим шуудан", 5 | "Error" : "Алдаа", 6 | "Save" : "Хадгалах", 7 | "Password" : "Нууц үг" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/mn.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Цахим шуудан", 3 | "Error" : "Алдаа", 4 | "Save" : "Хадгалах", 5 | "Password" : "Нууц үг" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ms_MY.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Email", 5 | "Error" : "Ralat", 6 | "Save" : "Simpan", 7 | "Password" : "Kata laluan" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ms_MY.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Email", 3 | "Error" : "Ralat", 4 | "Save" : "Simpan", 5 | "Password" : "Kata laluan" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/nb.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-post", 5 | "Error" : "Feil", 6 | "Save" : "Lagre", 7 | "Password" : "Passord" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/nb.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-post", 3 | "Error" : "Feil", 4 | "Save" : "Lagre", 5 | "Password" : "Passord" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/nn_NO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-post", 5 | "Error" : "Feil", 6 | "Save" : "Lagre", 7 | "Password" : "Passord" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/nn_NO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-post", 3 | "Error" : "Feil", 4 | "Save" : "Lagre", 5 | "Password" : "Passord" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/oc.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Adreça corrièl", 5 | "Error" : "Error", 6 | "Save" : "Salvar", 7 | "Password" : "Senhal" 8 | }, 9 | "nplurals=2; plural=(n > 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/oc.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Adreça corrièl", 3 | "Error" : "Error", 4 | "Save" : "Salvar", 5 | "Password" : "Senhal" 6 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ps.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Error" : "شسیب", 5 | "Save" : "ساتل", 6 | "Password" : "پاسورډ" 7 | }, 8 | "nplurals=2; plural=(n != 1);"); 9 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ps.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Error" : "شسیب", 3 | "Save" : "ساتل", 4 | "Password" : "پاسورډ" 5 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 6 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/pt_PT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Email", 5 | "Error" : "Erro", 6 | "Save" : "Guardar", 7 | "Password" : "Palavra-passe" 8 | }, 9 | "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/pt_PT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Email", 3 | "Error" : "Erro", 4 | "Save" : "Guardar", 5 | "Password" : "Palavra-passe" 6 | },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/si.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "විද්‍යුත් තැපෑල", 5 | "Error" : "දෝෂය", 6 | "Save" : "සුරකින්න", 7 | "Password" : "මුර පදය" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/si.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "විද්‍යුත් තැපෑල", 3 | "Error" : "දෝෂය", 4 | "Save" : "සුරකින්න", 5 | "Password" : "මුර පදය" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sq.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "Error", 6 | "Save" : "Ruaj", 7 | "Password" : "Fjalëkalim" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sq.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "Error", 4 | "Save" : "Ruaj", 5 | "Password" : "Fjalëkalim" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Е-пошта", 5 | "Error" : "Грешка", 6 | "Invalid argument(s)" : "Неисправни аргумент(и)", 7 | "Saved successfully" : "Успешно сачувано", 8 | "RainLoop" : "RainLoop", 9 | "RainLoop Webmail" : "RainLoop веб пошта", 10 | "Save" : "Сачувај", 11 | "Password" : "Лозинка" 12 | }, 13 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 14 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Е-пошта", 3 | "Error" : "Грешка", 4 | "Invalid argument(s)" : "Неисправни аргумент(и)", 5 | "Saved successfully" : "Успешно сачувано", 6 | "SnappyMail" : "SnappyMail", 7 | "SnappyMail Webmail" : "SnappyMail веб пошта", 8 | "Save" : "Сачувај", 9 | "Password" : "Лозинка" 10 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 11 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sr@latin.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "Error", 6 | "Save" : "Sačuvaj", 7 | "Password" : "Lozinka" 8 | }, 9 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sr@latin.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "Error", 4 | "Save" : "Sačuvaj", 5 | "Password" : "Lozinka" 6 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sv.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "E-post", 5 | "Error" : "Fel", 6 | "Go to RainLoop Webmail admin panel" : "Gå till administrationsdelen i Rainloop webbmejl", 7 | "Save" : "Spara", 8 | "Password" : "Lösenord" 9 | }, 10 | "nplurals=2; plural=(n != 1);"); 11 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/sv.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "E-post", 3 | "Error" : "Fel", 4 | "Go to SnappyMail Webmail admin panel" : "Gå till administrationsdelen i Rainloop webbmejl", 5 | "Save" : "Spara", 6 | "Password" : "Lösenord" 7 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 8 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ta.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "மின்னஞ்சல்", 5 | "Error" : "வழு", 6 | "Save" : "சேமிக்க ", 7 | "Password" : "கடவுச்சொல்" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ta.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "மின்னஞ்சல்", 3 | "Error" : "வழு", 4 | "Save" : "சேமிக்க ", 5 | "Password" : "கடவுச்சொல்" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/th.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "อีเมล", 5 | "Error" : "ข้อผิดพลาด", 6 | "Save" : "บันทึก", 7 | "Password" : "รหัสผ่าน" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/th.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "อีเมล", 3 | "Error" : "ข้อผิดพลาด", 4 | "Save" : "บันทึก", 5 | "Password" : "รหัสผ่าน" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/tk.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Error" : "ýalňyşlyk", 5 | "Save" : "Saklamak", 6 | "Password" : "Açarsöz" 7 | }, 8 | "nplurals=2; plural=(n != 1);"); 9 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/tk.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Error" : "ýalňyşlyk", 3 | "Save" : "Saklamak", 4 | "Password" : "Açarsöz" 5 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 6 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ug.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "تورخەت", 5 | "Error" : "خاتالىق", 6 | "Save" : "ساقلا", 7 | "Password" : "ئىم" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ug.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "تورخەت", 3 | "Error" : "خاتالىق", 4 | "Save" : "ساقلا", 5 | "Password" : "ئىم" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ur_PK.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "email", 5 | "Error" : "ایرر", 6 | "Save" : "حفظ", 7 | "Password" : "پاسورڈ" 8 | }, 9 | "nplurals=2; plural=(n != 1);"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/ur_PK.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "email", 3 | "Error" : "ایرر", 4 | "Save" : "حفظ", 5 | "Password" : "پاسورڈ" 6 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/uz.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Error" : "Error", 5 | "Save" : "Save", 6 | "Password" : "Password" 7 | }, 8 | "nplurals=1; plural=0;"); 9 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/uz.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Error" : "Error", 3 | "Save" : "Save", 4 | "Password" : "Password" 5 | },"pluralForm" :"nplurals=1; plural=0;" 6 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/vi.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "snappymail", 3 | { 4 | "Email" : "Thư điện tử", 5 | "Error" : "Lỗi", 6 | "Save" : "Lưu", 7 | "Password" : "Mật khẩu" 8 | }, 9 | "nplurals=1; plural=0;"); 10 | -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/l10n/vi.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Email" : "Thư điện tử", 3 | "Error" : "Lỗi", 4 | "Save" : "Lưu", 5 | "Password" : "Mật khẩu" 6 | },"pluralForm" :"nplurals=1; plural=0;" 7 | } -------------------------------------------------------------------------------- /integrations/nextcloud/snappymail/templates/index.php: -------------------------------------------------------------------------------- 1 | 2 | "> 2 | { 2 | 3 | const dom = document.getElementById('MailMessageView').content; 4 | 5 | dom.querySelector('.attachmentsControls').dataset.bind = ''; 6 | 7 | let ds = dom.querySelector('.attachmentsPlace').dataset; 8 | ds.bind = ds.bind.replace('showAttachmentControls', 'true'); 9 | 10 | ds = dom.querySelector('.controls-handle').dataset; 11 | ds.bind = ds.bind.replace('allowAttachmentControls', 'false'); 12 | 13 | })(); 14 | -------------------------------------------------------------------------------- /plugins/attachments-force-open/index.php: -------------------------------------------------------------------------------- 1 | addJs('extension.js'); // add js file 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plugins/avatars/images/services/amazon.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/amazon.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/apple.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/apple.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/asana.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/asana.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/battle.net.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/battle.net.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/blizzard.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/blizzard.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/dhl.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/dhl.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/disneyplus.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/disneyplus.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/ea.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/ea.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/ebay.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/ebay.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/facebook.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/facebook.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/github.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/github.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/google.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/google.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/linkedin.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/linkedin.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/microsoft.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/microsoft.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/onlive.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/onlive.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/paypal.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/paypal.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/skype.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/skype.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/steampowered.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/steampowered.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/ted.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/ted.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/twitter.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/twitter.com.png -------------------------------------------------------------------------------- /plugins/avatars/images/services/youtube.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/plugins/avatars/images/services/youtube.com.png -------------------------------------------------------------------------------- /plugins/cache-redis/Predis/ClientException.php: -------------------------------------------------------------------------------- 1 | addJs('js/excel_contact_group.js'); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/example/ContactSuggestions.php: -------------------------------------------------------------------------------- 1 | Email(), ''), 13 | array('email@domain.com', 'name') 14 | ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/example/langs/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "SETTINGS_EXAMPLE_ADMIN_EXAMPLE_TAB_PLUGIN": { 3 | "TAB_NAME": "Example Extension Tab", 4 | "LEGEND_EXAMPLE": "Example Extension Tab (Example)", 5 | "LABEL_PHP_VERSION": "PHP version" 6 | }, 7 | "SETTINGS_EXAMPLE_PLUGIN": { 8 | "TAB_NAME": "Example Extension", 9 | "LEGEND_EXAMPLE": "Example Extension (Example)", 10 | "LABEL_PHP_VERSION": "PHP version", 11 | "LABEL_SKYPE": "Skype", 12 | "LABEL_FACEBOOK": "Facebook", 13 | "BUTTON_SAVE": "Save" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/kolab/langs/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/bg.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/cs.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/da.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/el.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/et.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/fa.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Dossier Contacts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/hu.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/id.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/is.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/ko.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/lt.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/lv.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/nb.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/ro.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/sl.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/sv.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/uk.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "Contacts Folder" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/zh-TW.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "聯絡人名刺夾" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/langs/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "KOLAB": { 3 | "CONTACTS_FOLDER": "联系人文件夹" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/kolab/templates/KolabSettings.html: -------------------------------------------------------------------------------- 1 |
2 |
Kolab
3 |
4 | 5 |
6 | 7 | 9 |
10 | 11 |
12 |
13 | -------------------------------------------------------------------------------- /plugins/ldap-identities/LdapException.php: -------------------------------------------------------------------------------- 1 | 2 | × 3 |

4 | 5 | 8 | -------------------------------------------------------------------------------- /plugins/smtp-use-from-adr-account/README: -------------------------------------------------------------------------------- 1 | What does it do? 2 | 3 | You can configure multible identities, but if you send eMails it depends on the smtp server whether it accepts sending mails for an foreign eMail-Adress. 4 | By default, the smtp server of the account currently displayed in the interface is used. 5 | The plugin checks if you use a different From-Adress (identity). Then it searchs for a matching account (for the user) and rewrites smpt-config and credentials. 6 | -------------------------------------------------------------------------------- /plugins/snowfall-on-login-screen/index.php: -------------------------------------------------------------------------------- 1 | addJs('js/snowfall.js'); 14 | $this->addJs('js/include.js'); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/snowfall-on-login-screen/js/include.js: -------------------------------------------------------------------------------- 1 | 2 | if (!/iphone|ipod|ipad|android/i.test(navigator.userAgent)) 3 | { 4 | if (window.snowFall && window.rl) 5 | { 6 | let body = document.body; 7 | addEventListener('sm-show-screen', e => { 8 | if ('login' == e.detail) { 9 | window.snowFall.snow(body, { 10 | shadow: true, round: true, minSize: 2, maxSize: 5 11 | }); 12 | } else if (body.snow) { 13 | body.snow.clear(); 14 | } 15 | }); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/two-factor-auth/providers/interface.php: -------------------------------------------------------------------------------- 1 | UseLangs(true); 16 | $this->addJs('ical.js'); 17 | $this->addJs('message.js'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /plugins/wysiwyg-example/static/example.min.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /release.php: -------------------------------------------------------------------------------- 1 | #!/usr/bin/php 2 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | 7 | 8 | Options -Indexes 9 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/domains/disabled: -------------------------------------------------------------------------------- 1 | outlook.com 2 | qq.com 3 | yahoo.com 4 | gmail.com 5 | hotmail.com 6 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/libraries/MailSo/Config.php: -------------------------------------------------------------------------------- 1 | 'ss', 5 | 962 => 'σ', 6 | 8204 => '', 7 | 8205 => '', 8 | ); 9 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/libraries/snappymail/rtf/controlsymbol.php: -------------------------------------------------------------------------------- 1 | text = $text; 12 | } 13 | 14 | public function __toString(): string 15 | { 16 | return $this->text; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/libraries/snappymail/sasl/plain.php: -------------------------------------------------------------------------------- 1 | encode("{$authzid}\x00{$username}\x00{$passphrase}"); 14 | } 15 | 16 | public static function isSupported(string $param) : bool 17 | { 18 | return true; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/ja/relativetimeformat.js: -------------------------------------------------------------------------------- 1 | { 2 | year: { 3 | past: "{0}年前", 4 | future: "{0}年後" 5 | }, 6 | month: { 7 | past: "{0}か月前", 8 | future: "{0}か月後" 9 | }, 10 | week: { 11 | past: "{0}週間前", 12 | future: "{0}週間後" 13 | }, 14 | day: { 15 | past: "{0}日前", 16 | future: "{0}日後" 17 | }, 18 | hour: { 19 | past: "{0}時間前", 20 | future: "{0}時間後" 21 | }, 22 | minute: { 23 | past: "{0}分前", 24 | future: "{0}分後" 25 | }, 26 | second: { 27 | past: "{0}秒前", 28 | future: "{0}秒後" 29 | }, 30 | plural: n => 1 == n ? 'one' : 'other' 31 | } 32 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/ja/static.json: -------------------------------------------------------------------------------- 1 | { 2 | "BACK_LINK": "更新", 3 | "NO_SCRIPT_TITLE": "このアプリケーションではJavaScriptが必要です。", 4 | "NO_SCRIPT_DESC": "ブラウザでJavaScriptが、有効になっていません。\nJavaScriptを有効にして、再度試してください。\n", 5 | "NO_COOKIE_TITLE": "このアプリケーションではCookieが必要です。", 6 | "NO_COOKIE_DESC": "ブラウザでCookieが、有効になっていません。\nCookieを有効にして、再度試してください。\n", 7 | "BAD_BROWSER_TITLE": "ブラウザが古いです。", 8 | "BAD_BROWSER_DESC": "アプリケーションのすべての機能を使用するには、\nこれらのブラウザの1つをダウンロードしてインストールします:\n" 9 | } 10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/ko/relativetimeformat.js: -------------------------------------------------------------------------------- 1 | { 2 | year: { 3 | past: "{0}년 전", 4 | future: "{0}년 후" 5 | }, 6 | month: { 7 | past: "{0}개월 전", 8 | future: "{0}개월 후" 9 | }, 10 | week: { 11 | past: "{0}주 전", 12 | future: "{0}주 후" 13 | }, 14 | day: { 15 | past: "{0}일 전", 16 | future: "{0}일 후" 17 | }, 18 | hour: { 19 | past: "{0}시간 전", 20 | future: "{0}시간 후" 21 | }, 22 | minute: { 23 | past: "{0}분 전", 24 | future: "{0}분 후" 25 | }, 26 | second: { 27 | past: "{0}초 전", 28 | future: "{0}초 후" 29 | }, 30 | plural: n => 1 == n ? 'one' : 'other' 31 | } 32 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/ko/static.json: -------------------------------------------------------------------------------- 1 | { 2 | "BACK_LINK": "새로고침", 3 | "NO_SCRIPT_TITLE": "이 어플리케이션에는 자바스크립트가 필요합니다", 4 | "NO_SCRIPT_DESC": "사용 중인 브라우저가 자바스크립트를 지원하지 않습니다. 브라우저 설정을 확인하여 자바스크립트 사용을 활성화하고 다시 시도해주세요.", 5 | "NO_COOKIE_TITLE": "이 어플리케이션을 사용하려면 쿠키 사용이 지원되야 합니다.", 6 | "NO_COOKIE_DESC": "사용 중인 브라우저가 쿠키를 지원하지 않습니다. 브라우저 설정을 확인하여 쿠키 사용을 활성화하고 다시 시도해주세요.", 7 | "BAD_BROWSER_TITLE": "사용 중인 브라우저가 구버전입니다.", 8 | "BAD_BROWSER_DESC": "이 어플리케이션을 정상적으로 사용하시려면 아래의 브라우저들 중 하나를 설치해주세요:" 9 | } 10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/zh-TW/relativetimeformat.js: -------------------------------------------------------------------------------- 1 | { 2 | year: { 3 | past: "{0} 年前", 4 | future: "{0} 年後" 5 | }, 6 | month: { 7 | past: "{0} 個月前", 8 | future: "{0} 個月後" 9 | }, 10 | week: { 11 | past: "{0} 週前", 12 | future: "{0} 週後" 13 | }, 14 | day: { 15 | past: "{0} 天前", 16 | future: "{0} 天後" 17 | }, 18 | hour: { 19 | past: "{0} 小時前", 20 | future: "{0} 小時後" 21 | }, 22 | minute: { 23 | past: "{0} 分鐘前", 24 | future: "{0} 分鐘後" 25 | }, 26 | second: { 27 | past: "{0} 秒前", 28 | future: "{0} 秒後" 29 | }, 30 | plural: n => 'other' 31 | } 32 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/zh-TW/static.json: -------------------------------------------------------------------------------- 1 | { 2 | "BACK_LINK": "重新載入", 3 | "NO_SCRIPT_TITLE": "此應用程式需要 JavaScript。", 4 | "NO_SCRIPT_DESC": "此瀏覽器不支援 JavaScript。\n請啟用瀏覽器的 JavaScript,然後重新嘗試。\n", 5 | "NO_COOKIE_TITLE": "此應用程式需要 Cookies。", 6 | "NO_COOKIE_DESC": "此瀏覽器不支援 Cookies。\n請啟用瀏覽器的 Cookies,然後重新嘗試。\n", 7 | "BAD_BROWSER_TITLE": "此瀏覽器已過時", 8 | "BAD_BROWSER_DESC": "為使應用程式的全部功能執行正常,\n請下載並安裝下列其中一款瀏覽器:\n" 9 | } 10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/zh/relativetimeformat.js: -------------------------------------------------------------------------------- 1 | { 2 | year: { 3 | past: "{0} 年前", 4 | future: "{0} 年后" 5 | }, 6 | month: { 7 | past: "{0} 个月前", 8 | future: "{0} 个月后" 9 | }, 10 | week: { 11 | past: "{0} 周前", 12 | future: "{0} 周后" 13 | }, 14 | day: { 15 | past: "{0} 天前", 16 | future: "{0} 天后" 17 | }, 18 | hour: { 19 | past: "{0} 小时前", 20 | future: "{0} 小时后" 21 | }, 22 | minute: { 23 | past: "{0} 分钟前", 24 | future: "{0} 分钟后" 25 | }, 26 | second: { 27 | past: "{0} 秒前", 28 | future: "{0} 秒后" 29 | }, 30 | plural: n => 'other' 31 | } 32 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/localization/zh/static.json: -------------------------------------------------------------------------------- 1 | { 2 | "BACK_LINK": "重新加载", 3 | "NO_SCRIPT_TITLE": "此应用需要 JavaScript 支持!", 4 | "NO_SCRIPT_DESC": "您的浏览器不支持 JavaScript。\n请启用浏览器的 JavaScript 并重试。\n", 5 | "NO_COOKIE_TITLE": "此应用需要 Cookies 支持!", 6 | "NO_COOKIE_DESC": "您的浏览器不支持 Cookies。\n请启用浏览器的 Cookies 并重试。\n", 7 | "BAD_BROWSER_TITLE": "您的浏览器过时了。", 8 | "BAD_BROWSER_DESC": "为了使用所有特性,\n下载并安装其中一款浏览器:\n" 9 | } 10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Admin/AdminMenu.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Admin/AdminPane.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

SnappyMail -

4 | 5 |
6 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Common/Paginator.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Common/PopupsLanguages.html: -------------------------------------------------------------------------------- 1 |
2 | × 3 |

4 |
5 | 11 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Components/Checkbox.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/Components/Select.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/PopupsOpenPgpKey.html: -------------------------------------------------------------------------------- 1 |
2 | × 3 |

4 |
5 | 8 |
9 | 10 | 11 |
12 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersActionDiscard.html: -------------------------------------------------------------------------------- 1 |
2 |
9 |
10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersActionNone.html: -------------------------------------------------------------------------------- 1 |
2 |
9 |
10 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersActionReject.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 5 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersConditionBody.html: -------------------------------------------------------------------------------- 1 | 2 |   3 | 4 |   5 | 6 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersConditionDefault.html: -------------------------------------------------------------------------------- 1 | 2 |   3 | 4 |   5 | 6 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersConditionMore.html: -------------------------------------------------------------------------------- 1 | 2 |   3 | 4 |   5 | 6 |   7 | 8 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsFiltersConditionSize.html: -------------------------------------------------------------------------------- 1 | 2 |   3 | 4 |   5 | 6 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsMenu.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 8 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/app/templates/Views/User/SettingsPane.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/index.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/index.php -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/android-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/android-icon.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/apple-touch-icon.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/favicon-light.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/favicon-light.ico -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/favicon-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/favicon-light.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/favicon.ico -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/favicon.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/images/icon-message-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/images/icon-message-notification.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/images/snappymail-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/images/snappymail-logo.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/logo-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/logo-512.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/alert.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/alert.mp3 -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/alert.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/alert.ogg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/new-mail.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/new-mail.mp3 -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/new-mail.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/new-mail.ogg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/ping.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/ping.mp3 -------------------------------------------------------------------------------- /snappymail/v/0.0.0/static/sounds/ping.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/static/sounds/ping.ogg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/A/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/A/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/A/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/A/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/BlackWood/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/BlackWood/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/BlackWood/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/BlackWood/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Blurred/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Blurred/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Blurred/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Blurred/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/BlurredDark/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/BlurredDark/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/BlurredDark/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/BlurredDark/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Clear/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Clear/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Clear/styles.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --spinner-color: #666; 4 | } 5 | -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/DarkShine/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/DarkShine/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/DarkShine/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/DarkShine/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Default/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Default/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Default/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Default/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Default/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Default/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Linen/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Linen/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Linen/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Linen/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Linen/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Linen/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Love/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Love/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Love/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Love/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/LoveDark/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/LoveDark/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/LoveDark/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/LoveDark/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Magnetic/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Magnetic/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Magnetic/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Magnetic/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/NextcloudV25+/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/NextcloudV25+/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/NightShine/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/NightShine/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/NightShine/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/NightShine/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Snow/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Snow/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Snow/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Snow/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/SnowDarkV1/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/SnowDarkV1/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/SnowDarkV1/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/SnowDarkV1/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Squares/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Squares/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Squares/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Squares/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Squares/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Squares/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/SquaresDark/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/SquaresDark/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/SquaresDark/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/SquaresDark/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/SquaresDark/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/SquaresDark/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Stripes/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Stripes/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Stripes/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Stripes/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/StripesDark/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/StripesDark/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/StripesDark/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/StripesDark/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Wood/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Wood/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Wood/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Wood/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Wood/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Wood/images/preview.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Xv/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Xv/images/background.jpg -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Xv/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Xv/images/background.png -------------------------------------------------------------------------------- /snappymail/v/0.0.0/themes/Xv/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/snappymail/v/0.0.0/themes/Xv/images/preview.png -------------------------------------------------------------------------------- /tasks/common.js: -------------------------------------------------------------------------------- 1 | /* RainLoop Webmail (c) RainLoop Team | Licensed under MIT */ 2 | const del = require('del'); 3 | 4 | const { config } = require('./config'); 5 | 6 | exports.del = (dir) => del(dir); 7 | 8 | exports.cleanStatic = () => del(config.paths.staticJS) && del(config.paths.staticCSS); 9 | -------------------------------------------------------------------------------- /template.env: -------------------------------------------------------------------------------- 1 | HTTP_PORT=8080 2 | HTTPS_PORT=8443 -------------------------------------------------------------------------------- /vendors/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: var(--right, right); 8 | font-size: 143%; 9 | font-weight: bold; 10 | line-height: 1.43em; 11 | color: inherit; 12 | cursor: pointer; 13 | text-decoration: none; 14 | text-shadow: 0 1px 0 rgba(255,255,255,1); 15 | &:not(:hover) { 16 | opacity: 0.5; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vendors/bootstrap/less/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | // Fixed (940px) 6 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 7 | -------------------------------------------------------------------------------- /vendors/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Quick floats 7 | .pull-right { 8 | float: var(--right, right); 9 | } 10 | 11 | // Toggling content 12 | .show { 13 | display: block; 14 | } 15 | -------------------------------------------------------------------------------- /vendors/bootstrap/less/variables.less: -------------------------------------------------------------------------------- 1 | // 2 | // Variables 3 | // -------------------------------------------------- 4 | 5 | // GRID 6 | // -------------------------------------------------- 7 | 8 | // Default 940px grid 9 | // ------------------------- 10 | @gridColumns: 12; 11 | @gridColumnWidth: 60px; 12 | @gridGutterWidth: 20px; 13 | @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); 14 | -------------------------------------------------------------------------------- /vendors/fontastic/fonts/snappymail.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/vendors/fontastic/fonts/snappymail.woff -------------------------------------------------------------------------------- /vendors/fontastic/fonts/snappymail.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the-djmaze/snappymail/dea7f4d1d8c099d06f1bfbd1827d4a68288e08b4/vendors/fontastic/fonts/snappymail.woff2 -------------------------------------------------------------------------------- /vendors/knockout/build/fragments/extern-post.js: -------------------------------------------------------------------------------- 1 | window['ko'] = ko; 2 | })(this); 3 | -------------------------------------------------------------------------------- /vendors/knockout/build/fragments/extern-pre.js: -------------------------------------------------------------------------------- 1 | (window => { 2 | // (0, eval)('this') is a robust way of getting a reference to the global object 3 | // For details, see http://stackoverflow.com/questions/14119988/return-this-0-evalthis/14120023#14120023 4 | var document = window['document']; 5 | -------------------------------------------------------------------------------- /vendors/knockout/src/binding/defaultBindings/click.js: -------------------------------------------------------------------------------- 1 | // 'click' is just a shorthand for the usual full-length event:{click:handler} 2 | makeEventHandlerShortcut('click'); 3 | -------------------------------------------------------------------------------- /vendors/knockout/src/namespace.js: -------------------------------------------------------------------------------- 1 | // Internally, all KO objects are attached to koExports (even the non-exported ones whose names will be minified by the closure compiler). 2 | // In the future, the following "ko" variable may be made distinct from "koExports" so that private objects are not externally reachable. 3 | const ko = {}; 4 | -------------------------------------------------------------------------------- /vendors/knockout/src/version.js: -------------------------------------------------------------------------------- 1 | ko['version'] = "##VERSION##"; 2 | --------------------------------------------------------------------------------