Commit Graph

2715 Commits

Author SHA1 Message Date
Son 77e38e63fe handle hotmail complaint during reply phase 2021-11-21 11:31:28 +01:00
Son 63f4d15329 do not decrease directory or subdomain quota when user deletes a subdomain/directory 2021-11-20 20:00:35 +01:00
Son a072fdcd96 do not send emails to disabled user 2021-11-20 19:42:49 +01:00
Son 30f2734853 flake8 2021-11-19 18:32:04 +01:00
Son b2c31ef658 fix the pagination error display 2021-11-19 18:30:36 +01:00
Son d2ed9337f1 add coupon comment in notification 2021-11-19 16:40:52 +01:00
Son fdfa286d3e allow contact email to be case sensitive 2021-11-18 16:44:04 +01:00
Son a17e81a8f1 user can't import csv if current_user.disable_import 2021-11-18 10:51:57 +01:00
Son 6f4c9f6c5a add User.disable_import column 2021-11-18 10:51:13 +01:00
Son 38ecb227b0 reduce subdomain/directory quota when user create/delete subdomain/directory 2021-11-18 10:33:15 +01:00
Son 85c6e791bc add _directory_quota, _subdomain_quota column to User 2021-11-18 10:30:46 +01:00
Son bccfcee780 add subdomain and directory stats to Metric 2021-11-17 17:43:59 +01:00
Son ffc04c7fe9 redirect user to subdomain page if a subdomain is deleted 2021-11-17 17:34:53 +01:00
Son a8c86785d1 make sure a deleted subdomain can't be recreated 2021-11-17 17:21:13 +01:00
Son 5a81c08e32 add DeletedSubdomain model 2021-11-17 17:20:00 +01:00
Son 417f7b92b0 make sure a deleted directory can't be recreated 2021-11-17 17:02:31 +01:00
Son 482aa8614c Create DeletedDirectory model 2021-11-17 17:01:39 +01:00
Son 2ce7f3d445 add coupon.comment column 2021-11-17 11:52:46 +01:00
Son 67377a0f22 do not show subdomains on the domain page 2021-11-17 11:52:33 +01:00
Son 6eb702870c handle the case alias is in trash 2021-11-17 10:56:43 +01:00
Son 9c27f94e8e return only bounce report that can be decoded 2021-11-17 10:54:17 +01:00
Son abc074ea9b make sure password can't be longer than 100 chars 2021-11-16 19:41:05 +01:00
Son eaff8b7ff3 remove User.can_use_subdomain column, make subdomain available to all users 2021-11-15 11:16:03 +01:00
Son 790f0ed23c return 250 status when handling bounces 2021-11-13 11:21:19 +01:00
Son 324cc8734b handle the case user mistakenly use a lifetime coupon on the coupon page 2021-11-12 17:53:56 +01:00
Son 416eafaeb9 use the first alias suffix when creating a new random alias 2021-11-12 11:04:00 +01:00
Son 611fb8a20c take into account user.include_website_in_one_click_alias in /api/alias/random/new 2021-11-12 09:45:31 +01:00
Son 293cc74c53 add User.include_website_in_one_click_alias column 2021-11-12 09:44:40 +01:00
Son 2fad942c95 include coupon comment in the notification 2021-11-11 18:22:41 +01:00
Son 5105c0dbee limit the number of subdomains 2021-11-09 10:17:47 +01:00
Son 9f9b470ab8 fix 2021-11-08 11:52:41 +01:00
Son d7971953ac return error if name too long when updating alias 2021-11-08 11:26:10 +01:00
Son 89648a83dd fix case /mailbox/confirm_change is called in unauthorized user 2021-11-08 11:22:54 +01:00
Son 429683f444 log more data in apple.verify_receipt() 2021-11-06 18:25:15 +01:00
Son a1fdbc0caa use bigint for Fido.sign_count 2021-11-06 12:40:16 +01:00
Son bcf1fa2510 fix bug: user can't update mailbox address if it's already used by another account 2021-11-05 18:42:34 +01:00
Son 383f633e41 fix active_page 2021-11-05 18:33:14 +01:00
Son bfab753e76 do not show subdomain if no SLDomain support it 2021-11-05 18:10:56 +01:00
Son 4ed60ba1d0 set dmarc and dkim to False for subdomain 2021-11-05 18:09:04 +01:00
Son 58e92e7462 user can add subdomain 2021-11-05 11:44:39 +01:00
Son ef734d7045 add User.can_use_subdomain column 2021-11-05 11:44:04 +01:00
Son 3f1020d5d7 Add CustomDomain.is_sl_subdomain and SLDomain.can_use_subdomain columns 2021-11-05 11:29:10 +01:00
Son 516898af59 move all template files to templates/ 2021-11-04 15:05:22 +01:00
Son 4a47e8c9c6 refactor: move template files to templates/ 2021-11-04 15:00:39 +01:00
Son 0de85fdce3 redirect user directly to the client page if user has already authorized the client 2021-11-04 14:59:01 +01:00
Son a03d87b62c move files to templates/ 2021-11-04 14:48:56 +01:00
Son f8b6b20dd8 not create html in send_email if html isn't set 2021-11-04 14:27:33 +01:00
Son 014b7d5b1f improve wording on setting page 2021-11-03 12:36:07 +01:00
Son 0ae40d599a user can block contact directly on the dashboard 2021-11-03 11:29:46 +01:00
Son 51a85011b1 rename "send email" to "contacts" 2021-11-03 10:23:40 +01:00
Son accbf882c4 user can set one_click_unsubscribe_block_sender setting 2021-11-03 10:11:47 +01:00
Son 31e39314d5 return "block_forward" for /api/aliases/{alias.id}/contacts 2021-11-02 15:55:16 +01:00
Son 4369137e25 block the sender via one click unsubscribe 2021-11-02 15:44:43 +01:00
Son 368a2f1b47 Add User.one_click_unsubscribe_block_sender column 2021-11-02 15:41:49 +01:00
Son caa8656748 create /dashboard/block_contact/:contact_id 2021-11-02 15:30:18 +01:00
Son b50f1d60b2 refactor: create headers constants for List-Unsubscribe 2021-11-02 14:36:37 +01:00
Son 52a19818b7 save email whose bounce info can't be parsed for debugging 2021-11-02 14:32:16 +01:00
Son fbb1451352 rename file 2021-11-02 11:43:04 +01:00
Son 7fef62f67a Add MessageIDMatching.email_log_id column 2021-11-01 18:41:36 +01:00
Son db226c5706 black 2021-11-01 17:58:20 +01:00
Son e67969cdcf add processID to log format 2021-11-01 17:45:24 +01:00
Son 2691fff217 handle UnicodeDecodeError in replace() 2021-11-01 10:11:36 +01:00
Son 507d10cd89 user can block/unblock contact 2021-10-28 10:19:34 +02:00
Son bc4805b1fa Add POST /api/contacts/:contact_id/toggle 2021-10-28 10:14:20 +02:00
Son 9620f97449 add Contact.block_forward column 2021-10-28 10:12:56 +02:00
Son 02a005d076 increase message_id length to 1024 2021-10-27 16:06:56 +02:00
Son 8aa7b1b773 set client.referral_id=None when a referral is deleted 2021-10-26 12:06:49 +02:00
Son b41b695228 include the referral code when user signs up via SIWSL 2021-10-26 12:06:16 +02:00
Son 04bcc24ad7 user can set client.referral 2021-10-26 12:04:16 +02:00
Son 1aff59e112 improve client UI 2021-10-26 11:55:42 +02:00
Son f19655fc93 add client.referral_id column 2021-10-26 11:55:27 +02:00
Son a0165d6381 remove not working on gmail part 2021-10-25 15:39:49 +02:00
Son 3d071d27a6 improve wording, add client url 2021-10-25 15:18:42 +02:00
Son 0fbd351bed handle the referral url that has ?slref=code part 2021-10-25 15:02:02 +02:00
Son 83c5eded80 Referral name is required 2021-10-25 15:01:32 +02:00
Son 8cb413d5fd remove unused import 2021-10-25 14:47:07 +02:00
Son 7e0609c39a do not display nb_paid_user for client 2021-10-25 14:36:23 +02:00
Son d701b84110 decode and encode email payload for quoted-printable email in replace() 2021-10-25 14:34:13 +02:00
Son 8680c0a739 do do not use the ra+ prefix for reverse alias 2021-10-25 14:33:42 +02:00
Son befec56a86 display nb paid user on SIWSL app 2021-10-25 11:10:23 +02:00
Son 8bafdfc879 improve SIWSL wording 2021-10-25 11:09:30 +02:00
Son 9299904fc9 small refactor 2021-10-24 10:40:05 +02:00
Son 083b56b9a6 if user.disable_automatic_alias_note, do not add alias note 2021-10-23 18:24:28 +02:00
Son 50b0dc3767 Add User.disable_automatic_alias_note column 2021-10-23 17:40:57 +02:00
Son d41ab5f5de use words.txt instead of words_alpha.txt 2021-10-23 17:31:56 +02:00
Son b0822519eb only show the navigation arrow when #contacts > PAGE_LIMIT 2021-10-23 16:08:43 +02:00
Son 4a90c79753 make sure mailbox_ids is a list in /api/v3/alias/custom/new 2021-10-23 15:55:39 +02:00
Son ecdce2307f make sure input of /api/v3/alias/custom/new is a dict 2021-10-23 15:52:17 +02:00
Son 5843fa94a0 handle encoding typo 2021-10-19 18:05:56 +02:00
Son 9fb6e45077 fix the help text too close to the input 2021-10-19 17:38:29 +02:00
Son 421c121d59 black 2021-10-19 14:03:51 +02:00
Son be7ae3021a rename is_reply_email -> is_reverse_alias, make sure reverse-alias must end with EMAIL_DOMAIN 2021-10-19 12:14:16 +02:00
Son 1483f2e103 Add EmailLog.message_id, sl_message_id and MessageIDMatching table 2021-10-18 17:25:59 +02:00
Son 462164ff16 use tldextract to extract hostname 2021-10-18 11:45:48 +02:00
Son d6edd59450 use warning level 2021-10-18 09:55:28 +02:00
Son 0b06c46f65 handle missing content-transfer-encoding 2021-10-17 17:19:44 +02:00
Son 283a6a530d handle case address.parse can also parse an URL and return UrlAddress 2021-10-17 12:52:59 +02:00
Son 34564f6fa4 Add Metric2.nb_total_bounced_last_24h column 2021-10-15 10:46:22 +02:00
Son 4d740a4dc0 flake8 2021-10-15 10:39:29 +02:00
Son 57bfa7e933 make sure that a domain already used in a verified mailbox can't be added 2021-10-15 10:32:20 +02:00
Son fcb94f0331 add Bounce.info column 2021-10-14 15:45:29 +02:00
Son 3bdeda3e04 add get_mailbox_bounce_info() 2021-10-14 15:10:16 +02:00
Son 05cf085511 fix 2021-10-13 13:32:27 +02:00
Son cfe88b5df2 use job system to delete domain 2021-10-13 11:43:44 +02:00
Son fbabe6fb44 use job system for deleting mailbox 2021-10-13 11:40:15 +02:00
Son 3a0b125323 fix table name 2021-10-13 10:52:41 +02:00
Son e13a974e53 disable rate limiting 2021-10-13 10:30:04 +02:00
Son 074dd875dc comment out "Submit for approval" section 2021-10-12 14:39:29 +02:00
Son 372466ab06 do not use flask-sqlalchemy
- add __tablename__ for all models
- use sa and orm instead of db
- rollback all changes in tests
- remove session in @app.teardown_appcontext
2021-10-12 14:36:47 +02:00
Son 653a03ac11 show tooltip on highlighted alias 2021-10-12 09:58:17 +02:00
Son 8394d7340c format 2021-10-12 09:51:11 +02:00
Son ee0ed7d9ec refactor: use headers.py 2021-10-11 12:21:14 +02:00
Son 5821294ae9 refactor: use headers.py 2021-10-11 12:10:18 +02:00
Son 9bb83fe3e2 fix email thread: do not delete original message id 2021-10-11 12:00:37 +02:00
Son a7f82b2110 fix test 2021-10-11 11:47:07 +02:00
Son 5d7e10f776 make sure when user changes password, log user out on other browsers 2021-10-11 11:30:41 +02:00
Son fdc23b3107 add User.alternative_id column 2021-10-11 11:30:10 +02:00
Son cef6579946 add User.lifetime_coupon_id column 2021-10-04 17:14:34 +02:00
Son 9c528b913c add LifetimeCoupon.comment column 2021-10-04 16:48:33 +02:00
Son 4638155bbc allow import aliases for domains that have ownership_verified 2021-10-02 19:18:38 +02:00
Son Nguyen Kim 9528bdcb2e user can enable the ignore_loop_email 2021-09-27 15:58:04 +02:00
Son Nguyen Kim 339d611e63 remove Contact.from_header column 2021-09-27 12:19:33 +02:00
Son Nguyen Kim 8301015afd do not use email_validator in get_email_domain_part() 2021-09-27 12:13:41 +02:00
Son Nguyen Kim 408322217d allow user having apple subscription to switch to web subscription 2021-09-27 09:59:33 +02:00
Son Nguyen Kim 51a7dbfa52 Revert "not dkim sign"
This reverts commit b14534db2c.
2021-09-25 18:47:15 +02:00
Son Nguyen Kim b14534db2c not dkim sign 2021-09-23 19:32:06 +02:00
Son Nguyen Kim 469c2011aa use ~all instead of -all for SPF 2021-09-23 10:30:59 +02:00
Son Nguyen Kim 0ed0ac9ea7 handle "text/x-python-script" in replace() 2021-09-23 09:19:07 +02:00
Son Nguyen Kim d7d301b9c3 add missing h1 2021-09-22 16:03:58 +02:00
Son Nguyen Kim 3b16e502b3 add debug info when an email is sent from reverse-alias 2021-09-22 09:58:40 +02:00
Son Nguyen Kim 3443499ab9 add note for alias auto created with directory too 2021-09-22 09:45:42 +02:00
Son Nguyen Kim 1a32b654d0 refactor 2021-09-22 09:45:00 +02:00
Son Nguyen Kim 7674d8480e refactor: rename 2021-09-22 09:44:35 +02:00
Son Nguyen Kim ff1238a56f add alias note when auto creating alias via domain 2021-09-22 09:43:48 +02:00
Son Nguyen Kim 8024b35f1d refactor 2021-09-21 14:11:59 +02:00
Son Nguyen Kim d8280af93c refactor: rename 2021-09-21 14:09:24 +02:00
Son Nguyen Kim 5e9fb83150 fix typo 2021-09-21 14:08:52 +02:00
Son Nguyen Kim 636879ac1a use another icon for pin 2021-09-21 12:20:44 +02:00
Son Nguyen Kim 9279b20975 only put pinned alias in default sorting 2021-09-21 12:20:29 +02:00
Son Nguyen Kim 0075cee1ee default to UUID for api key code if the previous one is already used 2021-09-21 11:27:37 +02:00
Son Nguyen Kim 3c81f982ca display N/A if api key name is null 2021-09-21 11:26:05 +02:00
Son Nguyen Kim 65ce47b6f7 Allow ApiKey.name to be null 2021-09-21 11:25:52 +02:00
Son Nguyen Kim 18acfd9a42 handle case mailbox new address is already used 2021-09-21 11:19:22 +02:00
Son Nguyen Kim 19088ba85f refactor 2021-09-21 11:17:32 +02:00
Son Nguyen Kim d9d67df126 remove unique constraint on TransactionalEmail.email 2021-09-21 11:15:40 +02:00
Son Nguyen Kim bcc5126500 remove any restriction on regex 2021-09-21 10:57:47 +02:00
Son Nguyen Kim 1d09d76cb2 use re2 instead of re to avoid ReDOS attack 2021-09-21 10:57:36 +02:00
Son Nguyen Kim 2c60414796 when new rule is created, go to the rule list section 2021-09-21 10:43:02 +02:00
Son Nguyen Kim 84880ae32a fix error with rule regex doesn't save if error 2021-09-21 10:42:32 +02:00
Son Nguyen Kim 1e3afa257c validate regex before creating rule 2021-09-21 10:42:02 +02:00
Son Nguyen Kim f160ebec4e add debug zone to auto create page 2021-09-21 10:14:36 +02:00
Son Nguyen Kim 809f547742 remove CustomDomain.auto_create_regex 2021-09-21 09:48:07 +02:00
Son Nguyen Kim e5a8ce1492 use AutoCreateRule instead of custom_domain.auto_create_regex when creating new alias 2021-09-20 18:29:36 +02:00
Son Nguyen Kim 56c72d5fba create auto create page, remove custom domain auto_create_regex part 2021-09-20 18:28:43 +02:00
Son Nguyen Kim f36f8b94e2 Create AutoCreateRule, AutoCreateRuleMailbox model 2021-09-20 18:23:19 +02:00
Son Nguyen Kim 0055ca976b add flush option to ModelMixin.create() 2021-09-20 18:16:52 +02:00
Son Nguyen Kim 17c13ee37f ignore smtp error in handle_bounce_forward_phase() 2021-09-20 13:51:16 +02:00
Son Nguyen Kim cfb7b7cefc fix setting 2021-09-20 13:43:54 +02:00
Son Nguyen Kim 005a760710 handle case catch_all is enabled but custom_domain.auto_create_regex is already set 2021-09-20 12:32:39 +02:00
Son Nguyen Kim 153831ed1a remove obsolete sender formats 2021-09-20 12:27:36 +02:00
Son Nguyen Kim 98b472d925 use "pin" instead of "favorite" 2021-09-19 19:50:50 +02:00
Son Nguyen Kim 530bc8591e support | in auto create alias regex 2021-09-19 09:36:19 +02:00
Son Nguyen Kim cbc20dd268 remove unused import 2021-09-18 19:19:17 +02:00
Son Nguyen Kim 838f1dc86d add beta mention to auto create alias regex 2021-09-18 19:16:43 +02:00
Son 9b89d7cc5d update package 2021-09-18 18:48:31 +02:00
Son ec2812bfa4 handle invalid email in email_can_be_used_as_mailbox 2021-09-18 18:46:26 +02:00
Son Nguyen Kim 8b676bc4af not disable alias if ALIAS_AUTOMATIC_DISABLE is not set 2021-09-17 18:05:35 +02:00
Son Nguyen Kim de3207ac4b Add ALIAS_AUTOMATIC_DISABLE 2021-09-17 18:05:18 +02:00
Son Nguyen Kim 344f8e67d2 take into account custom_domain.auto_create_regex in try_auto_create_catch_all_domain() 2021-09-17 17:43:12 +02:00
Son Nguyen Kim a6c874e914 Use validate_email in get_email_local_part and get_email_domain_part 2021-09-17 17:42:52 +02:00
Son Nguyen Kim 2b84168d68 validate address in try_auto_create 2021-09-17 17:42:16 +02:00
Son Nguyen Kim 0b127216ee user can set custom_domain.auto_create_regex 2021-09-17 17:41:36 +02:00
Son Nguyen Kim 58d36e9cd8 add CustomDomain.auto_create_regex column 2021-09-17 17:35:36 +02:00
Son Nguyen Kim b990c052ac move domain mailboxes to domain detail page and only enable it if catch-all is on 2021-09-17 11:54:37 +02:00
Son Nguyen Kim 512ade83b4 improve wording & styling on custom domain info page 2021-09-17 11:38:07 +02:00
Son Nguyen Kim 785a619385 Add debug_info decorator 2021-09-17 10:31:26 +02:00
Son Nguyen Kim da0ddd5a34
Merge pull request #619 from Dattito/fix-wrong-description-of-error
fixed wrong description of error
2021-09-15 11:23:11 +02:00
Son Nguyen Kim 695a628e68 save email that can't be DKIM signed to temp dir to investigate 2021-09-15 09:29:08 +02:00
Son Nguyen Kim 3441d2ccf1 add new param TEMP_DIR 2021-09-15 09:28:08 +02:00
David Siregar 1cc8f7f2e3 fixed wrong description of error 2021-09-14 21:28:51 +02:00
Son Nguyen Kim 567bee9a0b add exception trace when dkim fails 2021-09-14 09:13:39 +02:00
Son Nguyen Kim e4ed192cce rename 2021-09-13 19:50:15 +02:00
Son Nguyen Kim 106358da5f handle yahoo complaint 2021-09-13 19:49:40 +02:00
Son Nguyen Kim b3012376c3 use another DKIM header if one fails 2021-09-13 16:04:32 +02:00
Son Nguyen Kim 6e42e536db ignore email sent from a mailbox to its alias if user.ignore_loop_email 2021-09-10 18:15:22 +02:00
Son Nguyen Kim 62044e6db1 Add User.ignore_loop_email column 2021-09-10 18:14:51 +02:00
Son Nguyen Kim 4949afc791 black 2021-09-10 17:42:07 +02:00
Son Nguyen Kim e5a388dffb optimize import 2021-09-10 17:37:33 +02:00
Son Nguyen Kim 61d9f7ee43 refactor 2021-09-10 17:31:29 +02:00
Son Nguyen Kim 41478a5715 replace parseaddr_unicode by parse_full_address 2021-09-10 17:26:14 +02:00
Son Nguyen Kim 638e8137ec fix test 2021-09-10 17:10:05 +02:00
Son Nguyen Kim 3ad4b6b76f use flanker instead of parseaddr_unicode 2021-09-10 17:06:38 +02:00
Son Nguyen Kim 8023afe9be use email_validator instead of validate_email which isn't updated for a while 2021-09-10 16:42:02 +02:00
Son Nguyen Kim 6b65e00dcf install flanker, upgrade email_validator 2021-09-10 16:36:59 +02:00
Son Nguyen Kim defd7b159d Fix get_header_unicode: handle the case header contains several parts 2021-09-09 11:47:01 +02:00
Son Nguyen Kim 4df83f953d handle utf-8 decoding fail 2021-09-08 15:17:11 +02:00
Son Nguyen Kim 5ac78f2694 reformat 2021-09-08 11:29:55 +02:00
Son Nguyen Kim 41f10373d1 add plan info 2021-09-08 10:51:47 +02:00
Son Nguyen Kim f3cff1f1bf create manual subscription using the coupon.is_giveaway info 2021-09-07 15:36:19 +02:00
Son Nguyen Kim d9f44437da add Coupon.is_giveaway column 2021-09-07 15:35:55 +02:00
Son Nguyen Kim 48838eb176 add highlighted alias in case it's not included in the result 2021-09-07 15:22:50 +02:00
Son Nguyen Kim b2ac1b537d add only pinned alias filter 2021-09-07 15:10:37 +02:00
Son Nguyen Kim 6dd6b74073 black 2021-09-07 11:13:28 +02:00
Son Nguyen Kim b53da25a41 handle hotmail complaint 2021-09-06 19:44:18 +02:00
Son Nguyen Kim ccb526faa1 blur out other aliases when an alias is highlighted 2021-09-06 19:12:31 +02:00
Son Nguyen Kim 1df5bec8df use parsleyjs instead of formbouncerjs 2021-09-06 18:51:50 +02:00
Son Nguyen Kim ffd2ec5e81 add filter by directory on dashboard 2021-09-05 19:11:05 +02:00
Son Nguyen Kim 3faf5c921d add admin for custom domain 2021-08-24 19:43:32 +02:00
Son Nguyen Kim ef6388887f better filter app 2021-08-21 17:56:23 +02:00
Son Nguyen Kim d6e48ea2e4
Merge pull request #593 from boarwell/keyboard-focusable
Re: Make the "Create" button focusable with keyboard
2021-08-21 16:25:20 +02:00
Son Nguyen Kim 40915ad741 make alias description font smaller 2021-08-21 16:18:01 +02:00
Son Nguyen Kim 4b184998bc make alias note always visible. Rename it to description 2021-08-21 16:11:17 +02:00
Son Nguyen Kim b5c827c2ea handle case user already has an active subscription via another channel (Paddle, Apple, etc) on coupon page 2021-08-21 16:04:32 +02:00
Son Nguyen Kim 513f5cd4fb rename 2021-08-21 15:55:22 +02:00
boarwell 8519d06639 make the "Create" button focusable with keyboard
fix https://github.com/simple-login/app/pull/561#issuecomment-899102494
2021-08-21 01:09:40 +09:00
Son Nguyen Kim bae9a6f431 flake8 2021-08-20 16:09:22 +02:00
Son Nguyen Kim 76c1b3d807 use deepcopy instead of email.message_from_string in copy() 2021-08-20 16:03:22 +02:00
Son Nguyen Kim 51578ce934 add filter by mailbox 2021-08-20 12:21:27 +02:00
Son Nguyen Kim b606d35c11 add pg_trgm index on Alias.note to speed up LIKE search 2021-08-20 12:14:20 +02:00
Son 009e1edced also support substring search 2021-08-19 18:07:11 +02:00
Son d8cb327b6e fix search 2021-08-19 17:47:10 +02:00
Son Nguyen Kim 59e4dbb6a6 fix error display on domain ownership check 2021-08-17 19:39:58 +02:00
Son Nguyen Kim 9c6f3989a0 remove hack 2021-08-17 19:19:49 +02:00
Son Nguyen Kim aa041708e3 add ownership verification via TXT record 2021-08-17 19:05:12 +02:00
Son Nguyen Kim f4fead2542 generate a domain ownership txt token if needed 2021-08-17 19:03:15 +02:00
Son Nguyen Kim 52e2e67081 add CustomDomain ownership_verified, ownership_txt_token column. Set ownership_verified=True for domain that has verified=True 2021-08-17 19:02:35 +02:00
Son e03f9d2342 black 2021-08-15 22:17:49 +02:00
Son cc86f698ee add login_as to admin 2021-08-15 22:14:52 +02:00
Son 800e866663 fix the alias creation not working 2021-08-15 18:18:23 +02:00
Son 1678945d5a improve wording 2021-08-15 17:58:49 +02:00
Son 0f4ad1a0d4 black 2021-08-15 17:56:31 +02:00
Son e5308932a2 make mailbox deletion async 2021-08-15 17:50:47 +02:00
Son 1384ccc459 remove RESET_DB config 2021-08-15 17:32:33 +02:00
boarwell e0da867b4a make the "Create" button focusable with keyboard 2021-08-09 16:49:03 +09:00
Son Nguyen Kim 2e9b288d7b optimize get_alias_infos_with_pagination_v3 when searching on mailbox email 2021-08-06 09:18:14 +02:00
Son Nguyen Kim 006a7b1420 black 2021-08-06 08:46:38 +02:00
Son Nguyen Kim 2f8f354f28 fix error with match(): use plainto_tsquery instead 2021-08-05 19:44:13 +02:00
Son Nguyen Kim 91d3d11452 update wording 2021-08-05 17:37:35 +02:00
Son Nguyen Kim 9eb3c7cf2c use Alias.ts_vector instead of note when returning alias 2021-08-04 09:30:12 +02:00
Son Nguyen Kim 2b048543d3 add Alias.ts_vector column to use full text search 2021-08-04 09:29:56 +02:00
Son Nguyen Kim e2fea3aed8 Revert "add index for Alias name and email column"
This reverts commit 35a9a723aa.
2021-08-04 09:01:59 +02:00
Son Nguyen Kim 35a9a723aa add index for Alias name and email column 2021-08-04 08:57:13 +02:00
Son Nguyen Kim b9d1d10473 Revert "add some indexes to speed up search by query"
This reverts commit e9538a62be.
2021-08-04 08:56:11 +02:00
Son Nguyen Kim e9538a62be add some indexes to speed up search by query 2021-08-03 19:13:48 +02:00
Son Nguyen Kim fb29503b81 do not send bounce to IgnoreBounceSender 2021-08-02 11:33:58 +02:00
Son Nguyen Kim 6dac717c75 Add IgnoreBounceSender model 2021-08-02 11:30:29 +02:00
Son Nguyen Kim 383cd49f25 fix year copyright in email 2021-07-30 17:05:16 +02:00
Son Nguyen Kim 9968cbfa8e make sure user cancels the Paddle subscription before deleting their account 2021-07-29 12:09:40 +02:00
Son Nguyen Kim 1cca7d4025 prettify UI 2021-07-29 10:14:13 +02:00
Son Nguyen Kim 5821bd6512 Create HibpNotifiedAlias to store all notified aliases 2021-07-29 09:41:46 +02:00
Son Nguyen Kim 5aef6cceb2 Add description, date column to Hibp model 2021-07-29 08:51:21 +02:00
Son Nguyen Kim dc83c3dd9e Add filter for Only Aliases Found In Data Breaches 2021-07-29 08:45:52 +02:00
Son Nguyen Kim 77c993b864 remove unused get_alias_infos_with_pagination_v2 2021-07-28 18:48:10 +02:00
Son Nguyen Kim 52376484a5 Add nb_block_last_24h, nb_bounced_last_24h, nb_forward_last_24h, nb_reply_last_24h 2021-07-28 18:31:59 +02:00
Son Nguyen Kim 39e2750486 remove Metric 2021-07-28 18:20:18 +02:00
Son Nguyen Kim 8e72d79837 add coupon page on the pricing page 2021-07-25 10:58:41 +02:00
Son Nguyen Kim 8ab840933f Add NEWRELIC_CONFIG_PATH config 2021-07-23 15:48:50 +02:00
Son Nguyen Kim 52fb01ed8d take into account expand_alias_info on the dashboard 2021-07-22 10:30:38 +02:00
Son Nguyen Kim c0fe72ccd0 user can change the expand_alias setting 2021-07-22 10:30:17 +02:00
Son Nguyen Kim 8de9931b28 Add User.expand_alias_info column 2021-07-22 10:17:23 +02:00
Son Nguyen Kim a58aaf8399 add disable OTP to admin page 2021-07-22 09:09:13 +02:00
Son Nguyen Kim f9b71a4bf4 add journalist upgrade into admin page 2021-07-21 15:08:25 +02:00
Son Nguyen Kim d181cd49dd Sign the whole Alias Suffix Info instead of just the suffix 2021-07-19 20:14:59 +02:00
Son Nguyen Kim 3141bf1367 remove redundant check 2021-07-19 20:02:26 +02:00
Son Nguyen Kim 06c2114534 add the "in the last 14 days" mention 2021-07-19 18:43:41 +02:00
Son Nguyen Kim 55dcd63654 support search on contact page 2021-07-14 18:57:25 +02:00
Son Nguyen Kim ac1f56f206 add in the last 14 days mention on the contact page 2021-07-14 17:23:33 +02:00
Son Nguyen Kim aa799fa339 Revert "Do not return contact alias activity on the contact manager page"
This reverts commit 45891bed36.

# Conflicts:
#	app/dashboard/views/alias_contact_manager.py
2021-07-14 17:21:07 +02:00
Son Nguyen Kim 25f0a71ea5 add 2 weeks mention on global stats 2021-07-14 17:15:46 +02:00
Son Nguyen Kim 253be7bad4 Revert "disable global stats to help the DB"
This reverts commit 7ce83c36b9.
2021-07-14 15:55:03 +02:00
Son Nguyen Kim 189eb8427e speed up should_disable() 2021-07-14 12:25:44 +02:00
Son Nguyen Kim e26287a4c7 Revert "disable should_disable() for now"
This reverts commit fb88654d84.
2021-07-14 12:23:02 +02:00
Son Nguyen Kim b98e913304 fix contact page 2021-07-13 22:25:53 +02:00
Son Nguyen Kim 45891bed36 Do not return contact alias activity on the contact manager page 2021-07-13 19:27:45 +02:00
Son Nguyen Kim fb88654d84 disable should_disable() for now 2021-07-13 17:24:28 +02:00
Son Nguyen Kim 7ce83c36b9 disable global stats to help the DB 2021-07-13 14:52:02 +02:00
Son Nguyen Kim cbd6c96d01 preload Alias.hibp_breaches 2021-07-13 14:11:27 +02:00
Son Nguyen Kim 7ac2a02b27 join with EmailLog directly without passing by Contact 2021-07-13 14:11:14 +02:00
Son Nguyen Kim 4b9b3f18a2 add index for contact.reply_email col 2021-07-13 10:17:10 +02:00
Son Nguyen Kim edab5dfac3 fix 2021-07-13 09:59:51 +02:00
Son Nguyen Kim 19c067fa17 add coupon admin 2021-07-13 08:55:04 +02:00
Son Nguyen Kim 601385a0c1 add coupon 2021-07-13 08:54:37 +02:00
Son Nguyen Kim 7a8b5d80ed Create coupon model 2021-07-12 19:26:28 +02:00
Son Nguyen Kim cc650f9fae remove unused import 2021-07-12 18:56:43 +02:00
Son Nguyen Kim 99599bb09f make sure user needs to go through MFA when resetting password 2021-07-12 18:56:09 +02:00
Son Nguyen Kim 0b063cb409 Add EmailLog.alias_id column 2021-07-11 12:27:30 +02:00
Son Nguyen Kim fe1f8e9eb8 make the reverse-alias replacement visible 2021-07-11 09:07:25 +02:00
Son NK f59651045d use data-bouncer-message instead of title to display error message 2021-07-03 17:50:54 +02:00
Son NK 95d6fa3478 make sure user can create new alias to receive an alias transfer 2021-07-03 17:12:03 +02:00
Son NK 01815b9153 replace get_suffix() by User.get_random_alias_suffix() 2021-06-27 17:51:13 +02:00
Son NK 09d00df363 reformat imports 2021-06-27 17:50:36 +02:00
Raymond Nook 4469a64de6
Merge branch 'simple-login:master' into master 2021-06-24 02:57:17 -07:00
Son NK 6532e0de93 Return 550 instead of 421 when rate limited. Rename greylisting to rate limit 2021-06-24 09:47:01 +02:00
Son NK e8cee6de80 increase greylisting threshold 2021-06-23 19:55:41 +02:00
Son NK 70b51b5002 return 550 instead of 421 in case of SMTPRecipientsRefused 2021-06-23 19:50:42 +02:00
Son NK 6fa267e92b refactor: put all SMTP statuses into status.py 2021-06-23 19:47:06 +02:00
Son NK b84eb13ab5 Discard ignored email
Create IgnoredEmail model
2021-06-22 17:52:24 +02:00
Raymond Nook 101c6c85ef
Merge branch 'simple-login:master' into master 2021-06-17 20:19:01 -07:00
Son 93991816c9 fix "Received" header is not str 2021-06-17 23:02:25 +02:00
Raymond Nook e40c276a68
Merge branch 'master' into master 2021-06-05 22:57:27 -07:00
devStorm e79959c330
🐛 imported but unused 2021-06-05 22:53:16 -07:00
Son NK 3308919906 Remove /alias/custom/new 2021-06-05 17:41:28 +02:00
Son NK ef32998e99 Remove /alias/options, /v2/alias/options, /v3/alias/options 2021-06-05 17:41:18 +02:00
Son NK a2ffc53c62 user can have manual subscription applied if their current subscription is canceled 2021-06-05 17:28:04 +02:00
Son NK 78df95395b improve upgrade_channel 2021-06-05 17:20:42 +02:00
Son NK 79d0ef8906 Use Postfix queue-id as log message-id 2021-06-04 17:15:59 +02:00
Son NK 10414a6b96 flake8 2021-06-02 19:04:58 +02:00
Son NK 62683a221a black 2021-06-02 18:48:35 +02:00
Son Nguyen Kim b14d79c8f7
Merge pull request #496 from nbraud/pw_hash/refactor
Fix minor issues with password-handling, refactor
2021-06-02 18:33:56 +02:00
Son NK eb2adc870a make sure only premium user can create new mailbox via API 2021-06-02 17:17:28 +02:00
Son NK 3897f6b633 refactor handle_bounce() 2021-06-02 11:38:52 +02:00
Son NK ed938dd86a Add query2str 2021-05-30 19:58:46 +02:00
nicoo 586654e08e app.pw_models: Refactor, use constant-time equality 2021-05-29 17:42:46 +02:00
Son NK 28285f28ac Add index for AliasHibp 2021-05-28 19:59:26 +02:00
Son NK aa667851e9 log user-agent in deprecated endpoint 2021-05-28 17:46:34 +02:00
nicoo ecd74b801b app.pw_models: Use unicode normalization
Per NIST [SP800-63B, §5.1.1.2] Memorized Secret Verifiers :
> the verifier SHOULD apply the Normalization Process for
> Stabilized Strings using either the NFKC or NFKD normalization

This is necessary for Unicode passwords to work reliably.
ASCII-only passwords aren't affected.

[SP800-63B, §5.1.1.2]: https://pages.nist.gov/800-63-3/sp800-63b.html#-5112-memorized-secret-verifiers
2021-05-27 22:16:07 +02:00
devStorm e6192ece01
style 2021-05-26 22:34:50 -07:00
Raymond Nook 258d505cbf
Merge branch 'master' into master 2021-05-26 22:33:20 -07:00
devStorm f7bef3941a
replace random_word with get_suffix(user) 2021-05-26 22:30:12 -07:00
nicoo 52d4d2abdb app.models: minor refactor (extract pw auth) 2021-05-26 18:18:47 +02:00
Son NK 8cfd5e01dc add alerts on /alias/custom/new and /v3/alias/options and below 2021-05-25 19:36:45 +02:00
Son NK 99d26a01cb UI tweak 2021-05-25 18:30:14 +02:00
Son NK 388a425cac Only show pagination control if there are previous/next page 2021-05-25 18:27:06 +02:00
Son NK b23e3d94fd make sure AliasHibp has cascade ondelete 2021-05-25 18:14:44 +02:00
Son NK fb97f384e4 small UI tweak 2021-05-25 17:59:40 +02:00
Son NK 2f96322977 make sure BOUNCE_PREFIX_FOR_REPLY_PHASE can't be used as directory name or for creating aliases on-the-fly 2021-05-25 17:59:40 +02:00
Son NK a918cc3670 Add BOUNCE_PREFIX_FOR_REPLY_PHASE 2021-05-25 17:59:40 +02:00
Son NK 159843a923 Add log for sl_sendmail 2021-05-24 12:04:22 +02:00
Son NK ade07f9449 return empty name when name can't be decoded 2021-05-22 16:47:44 +02:00
Sylvia van Os 1ee941647f Add direct link to HIBP pwned info 2021-05-21 12:08:00 +02:00
Son NK d4e930c930 Remove nullsfirst as not compatible with sqlite. Add more logging 2021-05-19 12:46:55 +02:00
Son Nguyen Kim b3f8fd6789
Merge pull request #472 from TheLastProject/feature/hibp
Add HIBP checks
2021-05-19 12:37:04 +02:00
Sylvia van Os a08b0c05cc Don't override id 2021-05-17 21:29:29 +02:00
Sylvia van Os 969616d671 Date compare in DB instead of model function 2021-05-17 18:20:35 +02:00
Sylvia van Os bee468e055 Black 2021-05-15 18:04:50 +02:00
devStorm 4a0fc8380f
variable naming 2021-05-14 11:03:16 -07:00
Sylvia van Os f67f5297f2 Add HIBP checks 2021-05-14 19:50:32 +02:00
Son NK ef2eb7f959 add Paddle subscription_id in admin 2021-05-14 16:10:34 +02:00
devStorm 30183ac8c3
🐛 fix style 2021-05-13 19:34:54 -07:00
devStorm 5c74ad2dc0
⚠️ Remove word list check 2021-05-13 16:55:46 -07:00
devStorm 178ce34399
Enum, setting 2021-05-13 16:53:01 -07:00
devStorm 3fc250018d
basic implementation of random suffix 2021-05-13 16:13:19 -07:00
Son NK edaf293398 Create admin pages for Referral and Payout 2021-05-10 15:51:39 +02:00
Son NK 93a8873192 show payouts on referral page 2021-05-10 13:03:44 +02:00
Son NK 229d2c644b Add Payout model 2021-05-10 13:03:19 +02:00
Son NK 5317b8ab84 move the api key page back to menu 2021-05-05 18:51:15 +02:00
Son NK e5926978c8 use bouncer on custom alias page 2021-04-30 11:45:00 +02:00
Son NK ceacf8e3a7 support dot in alias prefix 2021-04-30 11:37:17 +02:00
Son NK e74dbd7e98 increase monthly plan to $4 2021-04-23 12:08:27 +02:00
Son NK c5697fbf3c remove unused import 2021-04-23 12:07:49 +02:00
Son NK 7946879308 schedule account deletion 2021-04-23 11:50:26 +02:00
Son NK f3b04b9d81 add more logging 2021-04-16 18:37:16 +02:00
Son NK 0039b4c301 disable an alias if the user has too many bounces recently 2021-04-16 17:57:25 +02:00
Son NK cfb52a2eba add price mention on billing page 2021-04-12 10:14:35 +02:00
Son NK 5040e7b74b add filters for alias and mailbox admin 2021-04-12 10:07:17 +02:00
Son NK 9bfd9ebf07 fix 2021-04-09 12:46:51 +02:00
Son NK aad1270e0d free trial account can't create more than MAX_NB_EMAIL_FREE_PLAN aliases 2021-04-09 12:40:55 +02:00
Son NK f45e7b53d0 create admin for Client 2021-04-06 19:46:38 +02:00
Son NK f8540808bc remove Client.published 2021-04-06 19:46:21 +02:00
Son NK e42fb0816d Improve SIWSL wording 2021-04-06 18:12:06 +02:00
Son NK ea5281de95 automatically show how-to-use 2021-04-06 18:10:32 +02:00
Son NK 7c1af6a265 improve should_disable(): take into account repetitive bounces 2021-04-06 17:24:06 +02:00
Son NK c715f87526 improve SIWSL UI 2021-04-06 12:06:46 +02:00
Son NK 9e4ff01b17 improve login, register UI 2021-04-06 12:06:11 +02:00
Son NK af9597cf5a improve copy when app isn't approved 2021-04-01 18:10:39 +02:00
Son NK 085dec069b allow any redirect_uri if the app isn't approved 2021-04-01 18:04:45 +02:00
Son NK 03976ea1c2 improve copy in app approval 2021-04-01 18:04:35 +02:00
Son NK 9757b12b95 user can remove the app link 2021-04-01 14:20:13 +02:00
Son NK efae1710c8 extract the app/website to a separate page 2021-04-01 14:09:16 +02:00
Son NK 3c4a1413e0 Remove ClientUser.nonce 2021-04-01 12:49:32 +02:00
Son NK e6d8815ac5 take into account nonce in openid 2021-04-01 12:49:23 +02:00
Son NK da17f51778 add AuthorizationCode.nonce 2021-04-01 12:35:21 +02:00
Son NK 313b442af7 do not display AppId 2021-04-01 12:32:14 +02:00
Son NK 36e7cf3fdc add ClientUser.nonce 2021-04-01 12:31:37 +02:00
Son NK 46109770fc prettify 2021-04-01 11:05:58 +02:00
Son NK b13c65166f Add OpenID Connect Discovery Document URL 2021-04-01 11:05:21 +02:00
Son NK a90fa49636 add submit for approval for app 2021-04-01 10:52:51 +02:00
Son NK c3d57ed6e4 reformat code 2021-04-01 10:50:53 +02:00
Son NK 7d4e1048af show warning on authorize page for non-approved app 2021-04-01 10:50:37 +02:00
Son NK bbfb69d774 Add Client approved, description columns 2021-04-01 10:50:11 +02:00
Son NK eab4f5f7ac prettify app page 2021-04-01 10:02:08 +02:00
Son NK d5de99afe9 Restore /alias/custom/new as currently used by safari 2021-03-31 14:41:32 +02:00
Son NK e31e19047c improve admin 2021-03-30 19:08:41 +02:00
Son NK 1b41911598 remove social login from the login page 2021-03-29 16:06:58 +02:00
Son NK 9d5c2e3f80 display when subscription ends in admin 2021-03-26 12:14:48 +01:00
Son NK 26a087619c support extend manual subscription in admin 2021-03-26 12:14:33 +01:00
Son NK 2270ccf35d Add ENABLE_SPAM_ASSASSIN setting 2021-03-26 10:00:16 +01:00
Son NK 0bb8f9a227 make ALIAS_LIMIT configurable 2021-03-26 09:56:04 +01:00
Son NK 1cac625a90 restore /v2/alias/custom/new as used by browser extension 2021-03-25 19:18:50 +01:00
Son NK 92acf352b6 add limiter for random alias creation 2021-03-24 17:30:05 +01:00
Son NK 71389b7e09 add limiter on custom alias page 2021-03-24 16:52:05 +01:00
Son NK acc285abf0 remove /alias/custom/new, /v2/alias/custom/new, refactor test 2021-03-24 16:39:49 +01:00
Son NK 0c62ac4b1f set rate limit for creating alias endpoint 2021-03-24 16:26:42 +01:00
Son NK 84b4c11086 handle UnicodeEncodeError in encode() 2021-03-24 10:08:11 +01:00
Son NK d59cee0bcc improve welcome email 2021-03-23 18:47:16 +01:00
Son NK 1600e273dd remove Metric2.name column 2021-03-23 10:30:57 +01:00
Son NK ec1633d0d7 create Metric2 model 2021-03-23 10:23:40 +01:00
Son NK 7ab64d9768 add more logging 2021-03-22 15:52:48 +01:00
Son NK f0fb5108f9 show a different message for custom domain alias when deleting 2021-03-18 14:45:18 +01:00
Son NK 8b234b63a5 add custom domain to AliasInfo 2021-03-18 14:44:51 +01:00
Son NK 8bb324e82b propose users to disable an alias instead of deleting it 2021-03-18 14:21:26 +01:00
Son NK 91e805a637 move js part in index to a separate file 2021-03-18 12:34:08 +01:00
Son NK 1187b6dc99 update mailbox wording 2021-03-18 10:59:45 +01:00
Son NK c87fe55898 POST /api/aliases/:alias_id/contacts: return 200 and `existed=true` if contact is already added. 2021-03-17 20:29:34 +01:00
Son NK 48d7b66803 flake8 2021-03-17 11:05:26 +01:00
Son NK 66eb93fe53 fix sanitize header 2021-03-17 10:59:13 +01:00
Son NK 0848405d0c add mention not allowing forward email address 2021-03-17 10:27:46 +01:00
Son NK 5cba2eaa38 sanitize header 2021-03-17 10:23:35 +01:00
Son NK 826e4455cf refactor 2021-03-17 10:23:35 +01:00
Son NK 11789559f1 move spf_pass(), sl_sendmail() to email_utils.py 2021-03-17 10:23:35 +01:00
Son NK d1d81e6a6d move get_spam_score_async(), get_spam_score() to email/spam.py 2021-03-17 10:23:35 +01:00
Son NK 57b2e2d4ab fix handle_batch_import 2021-03-16 10:54:00 +01:00
Son NK 9a1dc0240b improve logging 2021-03-16 09:17:23 +01:00
Son NK 7ec0405709 improve message_id 2021-03-16 09:15:59 +01:00
Son NK 98264b14bc replace linebreak in sanitize_email() 2021-03-15 19:42:28 +01:00
Son NK 6eb7ebc338 add message_id in log to keep track of an email processing 2021-03-15 19:41:42 +01:00
Son Nguyen Kim ca4d097f14
Merge pull request #381 from TheLastProject/feature/importExportTests
Feature/import export tests
2021-03-15 15:17:58 +01:00
Sylvia van Os cfe889f7b9 Format with black 2021-03-13 15:37:28 +01:00
Sylvia van Os 8800c29526 Complete import tests 2021-03-13 15:36:25 +01:00
Sylvia van Os dcfd63eb0f Working import tests 2021-03-13 00:13:33 +01:00
Sylvia van Os 44ae20816a WIP: Import test 2021-03-10 23:08:33 +01:00
Son cf6442cec2 Add PATCH /api/custom_domains/:custom_domain_id 2021-03-10 22:56:12 +01:00
Son eb22a6302e rename creation -> deletion for GET /api/custom_domains/:custom_domain_id/trash 2021-03-10 22:39:33 +01:00
Son 6c2daf1bb6 add mailboxes to GET /api/custom_domains 2021-03-10 22:37:26 +01:00
Sylvia van Os c6646d5971 Add export test 2021-03-10 22:35:04 +01:00
Sylvia van Os 1915c8d09d Export and import mailbox info with alias 2021-03-09 21:09:58 +01:00
Son NK 3c8ec8fcf2 make DKIM_PRIVATE_KEY_PATH optional 2021-03-08 15:18:03 +01:00
Son NK 819738f55c remove unused DKIM_PUBLIC_KEY_PATH, DKIM_DNS_VALUE 2021-03-08 15:14:37 +01:00
Son NK 3512cc087e remove unused import 2021-03-08 14:53:14 +01:00
Son Nguyen Kim 095e2ae0de
Merge pull request #377 from TheLastProject/feature/api_export
Add export endpoints
2021-03-08 12:18:28 +01:00
Son NK 3768429909 use log format that allows clickable link to code source in PyCharm 2021-03-08 12:07:45 +01:00
Sylvia van Os 3932ed2eb8 Add export endpoints 2021-03-06 21:56:42 +01:00
Son NK 39c92110cb add more fields into /api/custom_domains 2021-03-06 20:43:50 +01:00
Son 863d8dcbe7 black 2021-03-06 18:10:41 +01:00
Son 23a0861790 Improve alias transfer. Use alias transfer_token. Add a limiter on /alias_transfer/receive 2021-03-06 18:08:42 +01:00
Son 29afc1b6b5 Add Alias.transfer_token col 2021-03-06 18:08:42 +01:00
Son 475eaa2bc0 inform user when his alias has been transferred 2021-03-06 18:08:42 +01:00
Son NK 9492aaccf5 Add EmailLog.auto_replied col 2021-03-06 17:44:46 +01:00
Son 80d80657d6 remove cloudwatch params 2021-03-06 16:09:27 +01:00
Son NK 193f8d8ccc Handle UnicodeDecodeError in get_header_unicode() 2021-03-05 20:41:23 +01:00
Son NK 3af98026e3 refactor config: do not use eval() 2021-03-05 17:26:47 +01:00
Son NK a65680b5ba remove DEBUG param 2021-03-05 17:26:47 +01:00
Son NK 38790fdc84 get_alias_infos_with_pagination_v3: handle the case where an alias has 2 contacts that have no activity 2021-03-01 18:45:15 +01:00
Son NK 36a117d790 rename 2021-03-01 18:22:39 +01:00
Son NK deef432c58 add extend trial on user admin page 2021-02-25 10:09:02 +01:00
Son NK 3aeaf6fe29 make include_sender_in_reverse_alias non nullable 2021-02-24 15:44:50 +01:00
Son NK c9b246259d can search on manual subscription admin page 2021-02-24 09:49:08 +01:00
Son NK 0f9cb13920 add admin page for manual subscription 2021-02-24 09:48:06 +01:00
Son NK a2dad50d20 take into account apple sub 2021-02-23 19:40:40 +01:00
Son NK d4ac2da96a set some fields back to default 2021-02-17 13:08:02 +01:00
Son NK 9e486fc2c0 add alias transfer 2021-02-17 12:56:28 +01:00
Son NK e19fff3a9a Add Alias.original_owner_id column 2021-02-17 12:49:47 +01:00
Son NK 7efce95145 add warning for cloudflare when setup DNS 2021-02-15 20:21:55 +01:00
Son NK 219703cb04 replace monero by crypto 2021-02-15 16:40:19 +01:00
Son NK 7879b854a3 refactor 2021-02-15 16:39:23 +01:00
Son NK e7063b6514 highlight reddit in welcome mail 2021-02-12 13:03:31 +01:00
Son NK dc29c6f9d9 improve wording 2021-02-12 13:03:31 +01:00
Son 51a38be070 Add charity organization upgrade on admin 2021-02-03 18:54:42 +01:00
Son NK 25afe4831c ignore amazonses.com encoding 2021-01-31 11:52:55 +01:00
Son NK 5f0930b291 handle header is None in get_header_unicode 2021-01-31 11:50:41 +01:00
Son NK bbb6049351 Add POSTFIX_PORT_FORWARD 2021-01-28 13:49:40 +01:00
Son NK b476e207fa take into account ?next param in login 2021-01-27 10:11:48 +01:00
Son NK 66f3585253 Add LifetimeCoupon admin page 2021-01-27 10:08:49 +01:00
Son NK e2f729206e replace the iframe video by a link 2021-01-27 09:45:42 +01:00
Son NK 5bb0ae0234 Set user.sender_format_updated_at when user updates sender_format 2021-01-26 20:14:13 +01:00
Son NK 0354943ff4 Add User.sender_format_updated_at column 2021-01-26 20:13:51 +01:00
Son NK e85cfebf92 do not show sender format that has full sender address 2021-01-26 19:55:56 +01:00
Son NK 6547d9420f Use "John Wick - john at wick.com" as default sender format 2021-01-26 19:54:59 +01:00
Son NK 4cd49b66c2 use VERP for transactional email: remove SENDER, SENDER_DIR 2021-01-26 09:59:22 +01:00
Son NK 1013e8dd79 Create Bounce, TransactionalEmail models 2021-01-26 09:59:22 +01:00
Son NK 4a91db8e11 rename parse_email_log_id_from_bounce -> parse_id_from_bounce 2021-01-26 09:59:22 +01:00
Son NK 980942a1f9 create Metric model 2021-01-25 18:47:02 +01:00
Son NK b0b74906a7 add confirm before changing the plan 2021-01-25 10:45:18 +01:00
Son NK 2bcd238250 Add hint for generic subject 2021-01-20 19:17:34 +01:00
Son NK 8e49fc40d4 fix 2021-01-20 13:28:23 +01:00
Son NK 202f28722e make MAX_SPAM_SCORE, MAX_REPLY_PHASE_SPAM_SCORE configurable 2021-01-20 13:27:30 +01:00
Son NK 013a94d1e9 fix user delete profile pic 2021-01-19 10:47:48 +01:00
Son NK da53b7fa00 Improve should_disable() to take into account last 7 days bounces 2021-01-19 10:45:39 +01:00
Son NK 7b9136d951 take into account user.profile_picture can be None 2021-01-19 09:15:43 +01:00
Son NK 264f41d466 Fix Paddle modal not showed up on mobile 2021-01-18 17:00:58 +01:00
Son e75ede969a Ctrl-enter submit the form on custom alias page 2021-01-16 19:56:30 +01:00
Son 8a74aee363 black 2021-01-16 10:55:14 +01:00
Son f9161dba20 Handle "message/rfc822" in replace() 2021-01-16 10:45:50 +01:00
Son NK fd0ba7030d Add the condition of at least 3 months to referral program 2021-01-15 17:26:05 +01:00
Son NK 4bfe6d1ac9 handle name can be None in get_name_initial() 2021-01-15 11:21:45 +01:00
Son NK c431abd917 take into account alias.cannot_be_disabled in should_disable 2021-01-13 11:03:30 +01:00
Son NK 79f22857b5 add mailbox admin page 2021-01-12 18:14:35 +01:00
Son NK 67de0e3c5b set user as default admin page 2021-01-12 18:14:21 +01:00
Son NK d6cc2a4bf3 Add AWS_REGION env var 2021-01-12 09:54:46 +01:00
Son NK 361945f3f8 add cash and monero upgrade in admin 2021-01-11 20:24:33 +01:00
Son NK 0e94c329d1 handle alias too long error 2021-01-11 15:45:41 +01:00
Son NK 13f3deb671 fix 2021-01-11 15:06:56 +01:00
Son NK c83b146f14 Add BOUNCE_PREFIX, BOUNCE_SUFFIX config 2021-01-11 14:51:29 +01:00
Son NK 45ac548e2b reserve bounce, bounces as directory name 2021-01-11 14:32:48 +01:00
Son NK 0ee0167b8e fix test 2021-01-11 12:31:05 +01:00
Son NK e9adb3270d use sanitize_email instead of .lower().strip().replace(" ", "") 2021-01-11 12:29:40 +01:00
Son NK 01858ac452 sanitize contact email 2021-01-11 12:27:02 +01:00
Son NK 2293c6d2e3 improve admin 2021-01-11 12:04:37 +01:00
Son NK cce08adb87 set "" as default name when creating new user 2021-01-11 10:25:37 +01:00
Son NK 435ced66bc make User.name nullable 2021-01-11 10:24:00 +01:00
Son NK ef7fae32b1 remove the "Hi {name}" from email template 2021-01-11 10:23:34 +01:00
Son NK 4293bba5ab add edu upgrade to User admin page 2021-01-08 18:53:01 +01:00
Son NK 3ac159d073 use text/plain for text email instead of text/text 2021-01-04 15:11:12 +01:00
Son NK 8dbaf3cf56 Add EmailLog.spam_report column 2021-01-04 14:38:32 +01:00
Son NK b942b44ec8 display bounce during reply phase on alias log page 2021-01-04 14:25:51 +01:00
Son NK 2b4dc3cdcc when a custom domain is default and has random_prefix_generation enabled, use the random_prefix as the first choice 2021-01-02 18:17:53 +01:00
Son NK 3179d70df1 ignore text/csv in replace() 2020-12-31 18:03:42 +01:00
Son NK a34af98de8 handle "multipart/signed" in add_header() 2020-12-31 15:50:03 +01:00
Son NK ef2624ccea handle multipart/mixed in add_header 2020-12-31 15:11:46 +01:00
Son NK 33dd6083c7 rename available_suffixes_more_info -> get_available_suffixes 2020-12-31 14:27:04 +01:00
Son NK 95f3db6aa5 remove available_suffixes() 2020-12-31 14:26:07 +01:00
Son NK 5a3b79b4cf replace available_suffixes by available_suffixes_more_info 2020-12-31 14:25:44 +01:00
Son NK 7915a2abb9 Fix available_suffixes_more_info 2020-12-31 14:18:49 +01:00
Son NK abb3ec1f05 rename 2020-12-31 14:16:32 +01:00
Son NK 4e20ffcc60 update wording: use custom alias to be opposed to random alias 2020-12-31 14:15:25 +01:00
Son NK 75d1b090cd rename default_random_alias_public_domain_id -> default_alias_public_domain_id 2020-12-31 14:14:56 +01:00
Son NK e0a414212e rename default_random_alias_domain_id -> default_alias_custom_domain_id 2020-12-31 14:06:32 +01:00
Son NK 1647a7a628 update settings wording 2020-12-31 14:00:21 +01:00
Son NK b9d8f11f2d put the default domain to top 2020-12-31 13:59:03 +01:00
Son NK 66e7aa7242 refactor 2020-12-31 12:50:04 +01:00
Son NK 0585ba97ee use warning level for "Cannot encrypt using the imported key" error 2020-12-31 11:05:11 +01:00
Son NK 74a63db835 ignore "text/directory" in replace() 2020-12-30 09:48:58 +01:00
Son NK 0df4d1a93d add more logging 2020-12-29 12:17:24 +01:00
Son NK 31774f9ea7 set include_sender_in_reverse_alias to False by default 2020-12-28 10:28:05 +01:00
Son NK be57add431 add list of cryptocurrency that are supported 2020-12-19 17:22:04 +01:00
Son NK 9f9d292754 remove can_use_coinbase column 2020-12-19 16:31:16 +01:00
Son NK 3015cd1dc0 ignore "text/calendar" content type 2020-12-18 16:07:32 +01:00
Son NK 6cec373b6d ignore UnicodeDecodeError in decode_text() 2020-12-18 13:10:33 +01:00
Son NK fb8a43fd5d use decode_text() in add_header() 2020-12-18 10:44:42 +01:00
Son NK 091ff3ad2c Add decode_text() 2020-12-18 10:43:06 +01:00
Son NK 3a8cdce650 Create should_disable 2020-12-16 18:50:09 +01:00
Son NK 830331d9b3 improve wording 2020-12-14 11:52:35 +01:00
Son NK b9dba9c2c3 improve wording 2020-12-14 11:48:08 +01:00
Son NK 3dd8ed7840 Create /dashboard/coinbase_checkout, remove extend_subscription route 2020-12-14 11:34:59 +01:00
Son NK f19a7e1bca Add COINBASE_API_KEY and COINBASE_YEARLY_PRICE config 2020-12-14 11:33:39 +01:00
Son NK 369c9dafce remove duplicated 2020-12-13 19:56:17 +01:00
Son NK 530160567b fix coinbase button not displayed on pricing page 2020-12-13 19:51:00 +01:00
Son NK 1348b58672 only show coinbase option for user who has can_use_coinbase=True 2020-12-13 19:28:46 +01:00
Son NK 1961d2f18e Add User.can_use_coinbase column 2020-12-13 19:28:13 +01:00
Son NK fbe48b7b3e add extend subscription link on settings page 2020-12-13 19:14:54 +01:00
Son NK 6c21b83975 add coinbase option on pricing page 2020-12-13 19:14:11 +01:00
Son NK 436e31229f Create extend_subscription page 2020-12-13 19:13:26 +01:00
Son NK 0542adb761 Add COINBASE_WEBHOOK_SECRET, COINBASE_CHECKOUT_ID config 2020-12-13 19:11:49 +01:00
Son NK 02c74e6a5a take into account Coinbase in can_upgrade(), is_paid(), _lifetime_or_active_subscription() 2020-12-13 19:08:06 +01:00
Son NK 9329cf04ad Create CoinbaseSubscription model 2020-12-13 19:05:43 +01:00
Son NK 8527fed69e pricing page: improve wording 2020-12-13 17:04:05 +01:00
Son Nguyen Kim bf139f83b3
Merge pull request #342 from herrboyer/linting
Linting
2020-12-07 17:45:50 +01:00
Son NK ce3dae2a07 inform user when an alias can't be created when a directory is disabled 2020-12-07 10:55:13 +01:00
Son NK 37a74bc093 refactor: rename 2020-12-07 10:50:42 +01:00
Son NK 4fb7b7bd2c user can change directory disabled 2020-12-07 10:49:40 +01:00
Son NK 05d4ec1c2f Add directory.disabled column 2020-12-07 10:48:43 +01:00
Son NK a40bbe74fe show include_sender_in_reverse_alias as checked if user hasn't set any value 2020-12-07 10:23:36 +01:00
Renaud Boyer 5d948faf56 black 2020-12-06 22:11:58 +01:00
Renaud Boyer f2f13958c7 linting 2020-12-06 22:11:22 +01:00
Renaud Boyer a2f3aeeece linting 2020-12-06 22:10:42 +01:00
Renaud Boyer 2b9cb44cdb linting 2020-12-06 22:10:16 +01:00
Renaud Boyer c09b6ef675 linting 2020-12-06 22:08:35 +01:00
Renaud Boyer 1c73f07d18 linting 2020-12-06 22:08:05 +01:00
Renaud Boyer a8d67f94e2 linting 2020-12-06 22:07:18 +01:00
Renaud Boyer f3303ee6bb linting 2020-12-06 22:06:03 +01:00
Renaud Boyer 4e93e511ec linting 2020-12-06 22:05:13 +01:00
Renaud Boyer f1fb0ebe1f linting 2020-12-06 22:04:21 +01:00
Renaud Boyer b7e6270a18 linting 2020-12-06 22:03:47 +01:00
Renaud Boyer a45b6df78c linting 2020-12-06 22:03:06 +01:00
Renaud Boyer 479a9d1a35 linting 2020-12-06 22:02:18 +01:00
Renaud Boyer 47b1398cad linting 2020-12-06 22:01:43 +01:00
Renaud Boyer 4bf22771af linting 2020-12-06 22:01:38 +01:00
Renaud Boyer 43d9dbc1fc linting 2020-12-06 22:00:01 +01:00
Son NK b0e39949cb fix embed video on mobile view 2020-12-06 19:39:12 +01:00
Son NK fec281b84f Add include_sender_in_reverse_alias on Setting page 2020-12-06 19:38:37 +01:00
Son NK ce2d68a64d take into account include_sender_in_reverse_alias when creating reverse-alias 2020-12-06 19:37:20 +01:00
Son NK eab09d8c32 Add User.include_sender_in_reverse_alias column. Null for existing user, False for new user. 2020-12-06 19:36:39 +01:00
Renaud Boyer 7bac9e82b9 linting 2020-12-06 18:04:29 +01:00
Renaud Boyer 7e1a474875 linting 2020-12-06 18:02:47 +01:00
Renaud Boyer 1ced8f76b7 linting 2020-12-06 18:02:23 +01:00
Renaud Boyer 4bcc0d107f linting 2020-12-06 18:01:55 +01:00
Renaud Boyer fad64ff064 linting 2020-12-06 18:00:41 +01:00
Renaud Boyer fefbaeb143 linting 2020-12-06 18:00:06 +01:00
Renaud Boyer 1e5185b328 linting 2020-12-06 17:59:07 +01:00
Renaud Boyer bcdb4c08d9 linting 2020-12-06 17:58:56 +01:00
Renaud Boyer a46a03be85 linting 2020-12-06 17:57:10 +01:00
Son NK 83df119178 do not replace for "application/*" 2020-12-04 11:33:49 +01:00
Son NK 59daaa3164 ignore multipart/signed when replacing message 2020-12-03 17:52:11 +01:00
Son NK 255a7e085a add index on user_id, mailbox_id, ... if possible 2020-12-02 17:33:03 +01:00
Son NK 81f9f9f41b optimize get_stats(): use session.query instead of EmailLog.query 2020-12-02 17:30:56 +01:00
Son NK 450b101e6e add /live endpoint 2020-12-02 16:34:28 +01:00
Son NK 66abbf2614 make sure to remove \n from alias name 2020-12-02 12:25:23 +01:00
Son NK 8551dade7c hide replace reverse alias option 2020-12-01 18:36:24 +01:00
Son NK cd680bcd7f ignore content type like image/, video/, audio/ in replace() 2020-12-01 18:34:38 +01:00
Son NK 2107bd4b08 remove Black Friday promo 2020-12-01 10:07:53 +01:00
Son NK 652bb6a369 take into account multipart/mixed in replace() 2020-11-30 19:45:45 +01:00
Son NK 692c81ac2a add warning about Gmail issue if reverse-alias replacement option 2020-11-30 19:16:10 +01:00
Son NK cefa68d392 Create replace() in email_utils 2020-11-30 15:15:13 +01:00
Son NK 0b95ca33b8 use no encoding for 8bit and binary 2020-11-30 10:49:04 +01:00
Son NK f804332c2d refactor: create EmailEncoding enum 2020-11-30 10:48:16 +01:00
Son NK 86636b2eb7 fix delete user profile picture 2020-11-27 16:36:21 +01:00
Son NK d61f45ea86 use 7bit as default encoding 2020-11-26 17:22:17 +01:00
Son NK 1241838b26 take into account message encoding in add_header() 2020-11-26 17:03:50 +01:00
Son NK e2a7061429 add get_encoding() and encode_text() 2020-11-26 17:01:05 +01:00
Son NK d35faf7154 comment out paddle issue annoucement 2020-11-26 10:39:44 +01:00
Son NK adfbfe8026 Use load_public_key_and_check when adding new PGP key 2020-11-26 10:27:32 +01:00
Son NK 5b9eb8686a add id to mailbox repr 2020-11-26 10:08:09 +01:00
Son NK 03383eb181 display Paddle issue as announcement on pricing page 2020-11-25 17:43:02 +01:00
Son NK ca625e60d5 fix add pgp 2020-11-25 17:29:54 +01:00
Son NK bb8c9451c4 catch all exception in load_public_key() 2020-11-25 14:31:14 +01:00
Son NK 4381314f6f preload email_log.mailbox 2020-11-24 21:51:25 +01:00
Son NK 297857a140 Remove _MAILBOX_ID_HEADER 2020-11-24 16:50:55 +01:00
Son NK 6b07be5677 add email_log.mailbox_id column 2020-11-24 16:35:16 +01:00
Son NK bcb2657de3 add remove button on custom domain name 2020-11-24 12:02:47 +01:00
Son NK 3d75ef974a user can turn on/off pgp on mailbox that has valid pgp_finger_print 2020-11-24 11:22:41 +01:00
Son NK cbbb472d06 refactor 2020-11-24 11:22:41 +01:00
Son NK c707342695 Use pgp_enabled() instead of pgp_finger_print 2020-11-24 11:22:41 +01:00
Son NK 5997e5b5b5 add Mailbox.disable_pgp column 2020-11-24 11:22:41 +01:00
Son NK 33e6342a9c use warning log when user uses premium domain 2020-11-23 10:43:50 +01:00
Son NK 836b602316 fix 2020-11-22 13:50:57 +01:00
Son NK bcdf522174 create normalize_reply_email(): handle case where reply email contains space, quote, etc 2020-11-22 13:07:09 +01:00
Son NK a1d5b01143 make sure mailbox email is valid 2020-11-22 12:18:31 +01:00
Son NK fbf242f6c6 handle new name can be null 2020-11-22 12:10:19 +01:00
Son NK f069d2f083 use getaddresses to parse multiple address from To, CC header. Remove get_addrs_from_header() 2020-11-21 19:15:02 +01:00
Son NK 8aed5ced3f make sure a custom domain name does not contain a linebreak 2020-11-20 18:40:07 +01:00
Son NK 78ddf16c87 make sure alias name does not contain a linebreak 2020-11-20 18:39:23 +01:00
Son NK c25a5b50f6 make sure reply_email only contain lowercase 2020-11-20 10:03:40 +01:00
Son NK 75c3fa1c11 make sure reply-email only uses ascii-encoded char 2020-11-18 15:36:39 +01:00
Son NK ed22701cbe fix duplicate pinned alias in get_alias_infos_with_pagination_v3 2020-11-18 12:08:36 +01:00
Son NK 9ca129cb97 use warning level for cannot decode error 2020-11-18 11:43:25 +01:00
Son NK 5b9dc88c67 make sure alias prefix cannot be more than 40 chars 2020-11-18 10:38:35 +01:00
Son NK 0224e5f8a6 Fix SpamAssassin: init all class fields 2020-11-18 10:28:32 +01:00
Son NK 319078fceb use contact email when generating reply-email 2020-11-18 10:24:39 +01:00
Son NK 0963049d1f use utf-8 when unknown charset in parseaddr_unicode() 2020-11-18 10:03:58 +01:00
Son NK 28d42a7a22 Use get_header_unicode() in get_addrs_from_header() 2020-11-18 10:03:00 +01:00
Son NK be510ea1d7 use utf-8 if unknown charset in get_header_unicode() 2020-11-18 10:02:10 +01:00
Son NK 6ed6218895 black 2020-11-17 09:27:45 +01:00
Son NK 145fc9c67c Add reverse_alias_address to GET /api/aliases/:alias_id/activities 2020-11-17 09:27:30 +01:00
Son NK aada12f17e return reverse_alias_address in POST /api/aliases/:alias_id/contacts and GET /api/aliases/:alias_id/contacts 2020-11-16 19:39:00 +01:00
Son NK 9154b4656d refactor: create is_reply_email() 2020-11-16 19:22:19 +01:00
Son NK 3d153f5203 make sure user can't choose "ra" as directory name 2020-11-16 19:18:33 +01:00
Son NK 1926408a13 Add dns_utils.get_ns() 2020-11-16 19:16:06 +01:00
Son NK 75ba1669e0 Create generate_reply_email() and refactor 2020-11-16 19:15:09 +01:00
Son NK 15a6d9630a Handle sender_format in PATCH /api/setting 2020-11-15 19:43:37 +01:00
Son NK c794e73abd Add EnumE.has_name(), EnumE.get_value() 2020-11-15 19:43:01 +01:00
Son NK f0f81930bc Return "sender_format" in GET /api/setting 2020-11-15 19:35:07 +01:00
Son NK d8c9078708 Add EnumE.get_name() 2020-11-15 19:34:00 +01:00
Son NK aee917a3ef Add GET /api/custom_domains/:custom_domain_id/trash 2020-11-15 19:24:54 +01:00
Son NK de495b9afe return nb_alias in GET /api/custom_domains 2020-11-15 19:13:00 +01:00
Son NK 9d24b1b88a GET /api/custom_domains 2020-11-15 19:09:25 +01:00
Son NK f6568aca6a Return pinned in GET /api/aliases/:alias_id, GET /api/v2/aliases 2020-11-15 19:01:11 +01:00
Son NK f500a495b7 User can pin an alias 2020-11-15 18:46:43 +01:00
Son NK ae05c164c9 Support pinned in PATCH /api/aliases/:alias_id 2020-11-15 18:46:27 +01:00
Son NK 6c7018dd33 Take into account pinned alias in get_alias_infos_with_pagination_v3 2020-11-15 18:42:29 +01:00
Son NK abf50e302b Add Alias.pinned column 2020-11-15 18:38:07 +01:00
Son NK 08902bf784 small style refactor 2020-11-15 18:31:10 +01:00
Son NK 9cfb6d412a Add /api/v5/alias/options 2020-11-14 16:45:22 +01:00
Son NK f452c79aec Add /v2/setting/domains 2020-11-14 16:37:36 +01:00
Son NK f62c568dd0 Add Contact.invalid_email column 2020-11-14 15:54:06 +01:00
Son NK 3489e41fdb Add NOREPLY setting 2020-11-14 15:53:20 +01:00
Son NK 2c46d1db8e Add PGP_SIGNER and display if it's set 2020-11-14 13:00:14 +01:00
Son NK a072d6c0cd only report the paddle error if it's not 147 2020-11-14 12:55:53 +01:00
Son NK f16676e921 email.message_from_string can also throw LookupError when non-existent charset is set 2020-11-13 18:08:56 +01:00
Son NK b4e5e3eecb user can choose a referral code 2020-11-13 16:18:09 +01:00
Son NK 25de8001e2 fix circular import 2020-11-12 17:56:03 +01:00
Son NK 1c061ceb59 Schedule domain deletion instead of deleting it immediately 2020-11-12 17:41:47 +01:00
Son NK ec4d879836 change promotion to 1st year only 2020-11-10 22:37:58 +01:00
Son NK 5570300699 use 2 random words when creating random alias 2020-11-10 18:52:31 +01:00
Son NK 4e16eb7403 fix 2020-11-10 17:42:23 +01:00
Son NK 4666d21f63 email.message_from_string can also throw KeyError when 'content-transfer-encoding' is absent 2020-11-10 17:26:24 +01:00
Son NK 632a5bbbc8 handle UnicodeEncodeError in copy() and to_bytes() 2020-11-10 16:02:19 +01:00
Son NK c3f73b25b2 decode the subject 2020-11-09 21:16:50 +01:00
Son NK b2f9479bce failover when ascii encoding fails 2020-11-09 20:58:39 +01:00
Son NK 44c3ac1741 Replace 2.99 by 3, 29.99 by 30 2020-11-09 17:56:26 +01:00
Son NK a35256d161 fix paddle 2020-11-09 17:34:58 +01:00
Son NK 2cc7cb6a37 use to_bytes instead of .as_bytes() 2020-11-09 17:02:10 +01:00
Son NK 15466903d1 Support OTHER_PADDLE_MONTHLY_PRODUCT_IDS, OTHER_PADDLE_YEARLY_PRODUCT_IDS config 2020-11-09 16:56:17 +01:00
Son NK 3f8e5d0a8b add more logging 2020-11-08 22:39:49 +01:00
Son NK a9297078d3 fix dkim clipboard 2020-11-08 22:39:38 +01:00
Son NK 76389647bb add black friday coupon code 2020-11-08 16:31:24 +01:00
Son NK 4be182320e black 2020-11-07 13:00:58 +01:00
Son NK e659680875 add_header() 2020-11-07 13:00:12 +01:00
Son NK f57f29a97b Able to set a generic subject for PGP-enabled mailbox 2020-11-07 12:58:51 +01:00
Son NK 7cc57106de Add Mailbox.generic_subject column 2020-11-07 12:48:44 +01:00
Son NK 6c626520d3 handle_bounce_reply_phase 2020-11-04 12:32:15 +01:00
Son NK f4f2db0f04 use the same error structure in apple endpoints 2020-11-03 16:13:10 +01:00
Son NK 6e0394d980 fix filter not working when alias has several mailboxes 2020-11-03 15:10:57 +01:00
Son NK 4b8a2a1851 add tests for sign_data 2020-11-03 13:30:13 +01:00
Son NK c1b8f717b5 improve DNS page 2020-11-03 13:12:22 +01:00
Son NK 4b6368b378 make sure only verified mailbox can be used as default 2020-11-03 12:43:01 +01:00
Son NK 19ac657c1c add GET /api/v2/mailboxes 2020-11-03 12:14:13 +01:00
Son NK 273537e7ae use same mailbox format for "POST /api/mailboxes" and "GET /api/mailboxes" 2020-11-03 11:22:01 +01:00
Son NK a989545505 make sure alias contact address is valid 2020-11-03 11:13:43 +01:00
Son NK 04a418e655 fix contact name always converted to lowercase 2020-11-03 11:11:55 +01:00
Son NK 9fafddd603 use is_valid_email instead of regex 2020-11-03 11:11:09 +01:00
Son NK 751cc05534 check contact address in POST /aliases/<int:alias_id>/contacts 2020-11-03 11:10:32 +01:00
Son NK 72a34e28be add is_valid_email() 2020-11-03 11:09:37 +01:00
Son NK a890557c7f Use check_alias_prefix() to check alias prefix 2020-11-03 10:39:08 +01:00
Son NK 8d0e243c83 sign PGP forwarded email if PGP_SENDER_PRIVATE_KEY 2020-11-02 19:09:57 +01:00
Son NK 3f150e5944 add new param PGP_SENDER_PRIVATE_KEY_PATH 2020-11-02 19:06:47 +01:00
Son NK ec1b7dd8b8 return latest_activity=null if there's no activity in GET /api/v2/aliases 2020-11-01 12:32:20 +01:00
Son NK 38ca2341bc fix mailbox query in get_alias_infos_with_pagination_v3 2020-11-01 12:24:19 +01:00
Son NK e49169b887 Reset default random alias domain setting if user is not premium 2020-11-01 09:37:09 +01:00
Son NK 28563b9653 fix duplicated display 2020-10-30 13:05:45 +01:00
Son NK c076c7c7f3 PATCH /api/setting 2020-10-28 17:47:26 +01:00