Commit Graph

749 Commits

Author SHA1 Message Date
Son NK 9500cc6cee Take into account spamassassin spam report 2020-03-30 22:05:31 +02:00
Son NK 33a80236d3 Handle the case the msg is sent from the mailbox to alias. Happen when reply-all 2020-03-30 22:02:22 +02:00
Son NK ca5e3ac477 Refactoring: better naming 2020-03-30 21:46:52 +02:00
Son NK 019f5307c9 Always replace To and Cc header in reply phase 2020-03-30 21:45:18 +02:00
Son NK 59a336f5cd use warning level for bounce log message 2020-03-29 23:13:12 +02:00
Son NK da6441b4b8 Handle on-click unsubcribe 2020-03-28 23:19:25 +01:00
Son NK 7f49312255 use user preferred sender format 2020-03-28 22:37:00 +01:00
Son NK 5771eaeb63 Handle multiple rcpt_to 2020-03-28 21:24:43 +01:00
Son NK e9cd043760 do not put alias again when reply all 2020-03-28 21:20:59 +01:00
Son NK aa3a13c3ca Replace To or CC header when forward/reply 2020-03-28 19:16:55 +01:00
Son NK fee69d9546 refactor: create generate_reply_email() 2020-03-28 11:12:20 +01:00
Son NK f10d18c020 Add SL prefix to 550 to facilitate search 2020-03-28 11:05:14 +01:00
Son NK 9afcae534b return 550 instead of 510 when alias not exist 2020-03-28 11:04:58 +01:00
Son NK 0c43c2dd45 reformat: rename website -> contact whenever possible 2020-03-26 11:19:20 +01:00
Son NK c521052042 use {website_email} via SimpleLogin FROM header 2020-03-26 11:15:18 +01:00
Son NK bc3a3dae02 reformat 2020-03-22 16:56:08 +01:00
Son NK 86ef7f54d9 RefusedEmail.path can be null 2020-03-22 16:51:21 +01:00
Son NK 22ac3fa153 strip from/to header 2020-03-22 14:21:19 +01:00
Son NK 7f5f3e68ba make sure to set user_id when creating EmailLog 2020-03-20 09:55:52 +01:00
Son NK 6e54b4fed8 make sure to set user_id when creating contact 2020-03-20 09:54:38 +01:00
Son NK 8ce9d56e84 only premium user can encrypt emails with PGP 2020-03-19 19:19:04 +01:00
Son NK c6138828c2 fix to_header 2020-03-19 11:33:21 +01:00
Son NK ca4f02426c fix alias != address 2020-03-19 11:15:02 +01:00
Son NK 4a2523d20e refactor handle_bounce 2020-03-17 12:12:11 +01:00
Son NK a597fb3832 fix should_append_alias 2020-03-17 12:10:13 +01:00
Son NK 2d90d35647 rename gen_email_id -> alias_id 2020-03-17 12:01:18 +01:00
Son NK 4f281bdbbb rename GenEmail -> Alias, gen_email to alias whenever possible 2020-03-17 11:51:40 +01:00
Son NK bea870ef8b rename ForwardEmailLog to EmailLog 2020-03-17 11:10:50 +01:00
Son NK f2d630e597 rename forward_id to contact_id 2020-03-17 11:05:53 +01:00
Son NK 17974de746 rename ForwardEmail to Contact 2020-03-17 10:56:59 +01:00
Son NK 027cbb10d9 use parseaddr instead of get_email_part 2020-03-15 22:32:48 +01:00
Son NK 6b6fca2281 use email.utils.parseaddr and formataddr instead of get_email_name 2020-03-15 22:29:53 +01:00
Son NK b19be41a5e Support download email file in browser 2020-03-15 18:39:59 +01:00
Son NK b3977e5efd reformat 2020-03-15 12:26:35 +01:00
Son NK 9cdf766825 Send refused email notif to user email instead of mailbox 2020-03-15 12:15:11 +01:00
Son NK 0525e5822a Not include original email in automatic disable alias email 2020-03-15 10:50:46 +01:00
Son NK 5db92b049d Inform refused email to mailbox 2020-03-14 23:00:33 +01:00
Son NK 69198ff08a delete all unnecessary headers in PGP 2020-03-14 22:24:02 +01:00
Son NK 0bb9830680 Store the bounced email in email handling. 2020-03-14 16:34:23 +01:00
Son NK e713efee98 reformat 2020-03-13 10:34:41 +01:00
Son NK be9d2cdbe3 delete sender header 2020-03-13 10:34:02 +01:00
Son NK 5674cab390 fix KeyError exception: use add_or_replace_header instead of msg.replace_header 2020-03-10 09:56:47 +01:00
Son NK 1f370abf4d Merge branch 'master' into staging 2020-03-09 13:35:42 +01:00
Son NK cdea0e08ce improve logging 2020-03-09 08:45:16 +01:00
Son NK 612e4f6717 encrypt forwarded emails to gpg-enabled mailbox 2020-03-08 23:07:23 +01:00
Son NK a1bdd94ef1 append alias into the TO header if it's not present in To or CC 2020-03-05 21:13:36 +01:00
Son NK a6f4059d5d make sure to set mailbox_id when creating GenEmail 2020-03-05 17:03:07 +01:00
Son NK b15eeb10c5 If POSTFIX_SUBMISSION_TLS, use port 587 2020-03-03 10:49:27 +01:00
Son Nguyen Kim 773e24dd9a
Merge pull request #90 from simple-login/handle-bounced
Handle bounced
2020-02-22 22:37:11 +07:00
Son NK 19e179e268 use warning level for alias deleted before log 2020-02-22 21:49:19 +07:00
Son NK f80de382fe Prettify alias log 2020-02-22 21:09:07 +07:00
Son NK 78ef1cb8d4 notify user when emails sent to alias are bounced. 2020-02-22 20:57:19 +07:00
Son NK f416dc6af6 refactor and fix catch-all domain 2020-02-20 15:36:02 +07:00
Son NK 98aaed6c8c refactor email handler: extract get_or_create_forward_email() 2020-02-19 22:49:40 +07:00
Son NK e4e1429aae refactor email-handler: move handle_forward, handle_reply to outside of MailHandler class 2020-02-19 22:17:13 +07:00
Son NK fc09f911a4 refactor email-handler: extract try_auto_create() 2020-02-19 22:15:27 +07:00
Son NK 78ed6eab5a Handle envelop can have several recipients 2020-02-19 21:50:38 +07:00
Son NK 1454973681 fix formatting 2020-02-15 21:05:49 +07:00
Son NK b663703232 if alias has been deleted before, do not auto-create it with directory or catch-all domain 2020-02-15 21:05:49 +07:00
Son NK 4d69f813c1 Handle the bounce case where bounce report is sent to reply-email 2020-02-15 17:04:22 +07:00
Son NK 7598a167d0 Improve emails that inform unauthorized user 2020-02-11 22:58:30 +07:00
Son NK b41a61165c use mailbox_email when notifying user attempt to send from his alias 2020-02-11 22:46:53 +07:00
Son NK 2efe8cd160 take into account mailbox in reply phase: check the reply must come from mailbox 2020-02-10 23:24:14 +07:00
Son NK 7407f678ce take into account mailbox in forward phase 2020-02-10 23:23:40 +07:00
Son NK a2bbd49232 handle the case reply_email not exist 2020-02-02 18:53:26 +07:00
Son NK 98fd940b02 use warning log for reply from alias sent by unknown email 2020-01-31 12:06:34 +07:00
Son NK 1e8a7e4bca use can_create_new_alias() check when creating alias on-the-fly instead of is_premium() check 2020-01-30 14:43:31 +07:00
Son Nguyen Kim 4d7cd74190
Merge pull request #60 from SibrenVasse/master
Hide seperator from 'from header' if no name present
2020-01-30 00:01:50 +07:00
Sibren Vasse d7aae24ebb
Hide seperator from 'from header' if no name present 2020-01-29 14:31:54 +01:00
Son NK 097e96832f Update From header for forward-email if changed 2020-01-29 10:47:13 +07:00
Son NK e27cb63413 Merge branch 'master' into notify-user-reply 2020-01-22 23:28:20 +01:00
Son NK bae556f521 log msg["From"] for the failed reply from alias 2020-01-22 23:21:36 +01:00
Son NK 00dac9a95a notify user if reply from alias is NOT sent from their personal email 2020-01-22 23:18:27 +01:00
Son NK bdf75951f1 support ALIAS_DOMAINS
- use verify_prefix_suffix() in /api/alias/custom/new
-
2020-01-22 10:24:17 +01:00
Son NK abab161d2d Allow catch-all on the alias default domain 2020-01-20 23:01:40 +01:00
Son NK 6f414ba405 Support + and # as directory separator 2020-01-19 22:06:36 +01:00
Son NK 3f0aae6f02 send email notifying user that alias creation works only in premium plan 2020-01-16 22:06:36 +01:00
Son NK 1e084f306e log more info 2020-01-10 18:23:37 +01:00
Son Nguyen Kim cdd69b381e
Merge pull request #27 from simple-login/staging
Fix postfix-python bouncing problem
2020-01-10 13:27:32 +01:00
doanguyen ef2e390df3 Merge branch 'staging' of https://github.com/simple-login/app into staging 2020-01-10 11:28:08 +01:00
doanguyen be6db8fab1 fix error email bouncing between postfix and `email_handler` 2020-01-10 11:26:51 +01:00
Son NK 851ddce5a5 Merge remote-tracking branch 'origin/master' into directory
# Conflicts:
#	email_handler.py
2020-01-09 10:37:33 +01:00
Son NK ecce1eff99 remove support for directory+anything@EMAIL_DOMAIN 2020-01-08 22:09:46 +01:00
Son NK b8dc368c78 fix formatting 2020-01-08 21:54:22 +01:00
Son NK ce9402e1e6 Fix directory name parsing 2020-01-08 21:52:14 +01:00
Son NK 9377e2a0ed Create alias on the fly if it belongs to a directory 2020-01-08 21:38:41 +01:00
Son NK aea4426e1e make sure user original email not revealed in Received-SPF header 2020-01-08 12:44:29 +01:00
Son NK 27b9312057 fix formatting 2020-01-07 19:50:36 +01:00
Son NK f1befd7024 delete Reply-To header in reply phase 2020-01-07 19:50:24 +01:00
Son NK ba46d8f7e0 add delete_header() 2020-01-07 19:49:26 +01:00
Son NK 3bca9fde6b refactor: move add_or_replace_header to email_utils 2020-01-07 19:46:57 +01:00
Son NK 072e73187b make sure to replace Reply-To header in reply phase 2020-01-07 19:14:36 +01:00
Son Nguyen Kim f62a7ffe47
Merge pull request #21 from simple-login/staging
change the smtp response code
2020-01-04 14:40:15 +01:00
doanguyen 0e7016b2e0 change the smtp response code 2020-01-04 11:36:55 +01:00
Son NK 0dc901d05d make email lowercase before processing them 2020-01-04 10:25:19 +01:00
Son NK 28a0f9c616 Set automatic_creation flag when alias is created with catch-all feature 2019-12-30 18:48:25 +01:00
Son NK f08ca682c0 Create alias on-the-fly if the corresponding custom domain allows catch-all 2019-12-30 18:26:07 +01:00
Son NK 4fd6b617c8 fix domain used in dkim signature 2019-12-25 17:33:24 +00:00
Son NK c62bfb292a add DKIM signature for domain that is dkim verified 2019-12-25 17:23:43 +00:00
Son NK 2daeb9501d remove email subject logging 2019-12-18 18:07:20 +02:00
Son NK 569fda47a9 fix DKIM fail on reply phase: the DKIM-signature should be added at the end of processing 2019-12-17 21:43:31 +02:00
Son NK 4799721667 remove DKIM-Signature if any 2019-12-17 19:06:17 +02:00
Son NK a61b900675 Sign DKIM at app level
- add DKIM_PRIVATE_KEY_PATH param
- create email_utils.add_dkim_signature
- add DKIM signature for transactional emails
- add DKIM signature for forward & reply emails. In reply phase, only non-custom-domain emails have DKIM added.
2019-12-17 18:50:26 +02:00
Son NK f8293bc618 make ADMIN_EMAIL optional 2019-12-16 19:36:59 +02:00
Son NK 615e2a4d91 use send_by_postfix instead of sending bounce email directly 2019-12-15 18:55:18 +02:00
Son NK 7e76c3a0a9 send bounce directly instead of return 550 2019-12-15 18:55:18 +02:00
Son NK 881525dfc2 use random_string for email_handler as reply email is not user-facing 2019-12-15 18:55:18 +02:00
Son NK c5bf95fffe forward reply email can only by used by user email 2019-12-15 18:55:18 +02:00
Son NK 46b0872710 handle both emails with reply+ and ra+ prefix 2019-12-15 18:55:18 +02:00
Son NK 8c3834c957 generate a reply_email, make sure it is unique 2019-12-15 18:55:18 +02:00
Son NK 62e0ae27a0 move get_email_name, get_email_part to email_utils 2019-12-15 18:55:18 +02:00
Son NK ec62fad3a0 remove notify_admin, replace by general stats 2019-12-15 18:55:18 +02:00
Son NK b0f4ab8a6d use sendmail instead of send_message in reply phase to avoid unicode problem 2019-12-15 18:55:18 +02:00
Son NK 572ce1de57 fix db connections leaks in email_handler: override the default app.teardown_appcontext 2019-12-15 18:55:18 +02:00
Son NK 7f908a9da8 display website_from on alias log 2019-12-15 18:55:18 +02:00
Son NK 8d60ebd456 handle the case email from header has the format "First Last <ab@cd.com>" 2019-12-15 18:55:17 +02:00
Son NK c37ba0e1de website_email: use From header instead of envelope from 2019-12-15 18:55:17 +02:00
Son NK 29d48b7d0f reduce sleep time in email_handler 2019-12-15 18:55:17 +02:00
Son NK 1435a77130 send raw message instead of using EmailMessage object 2019-12-15 18:55:17 +02:00
Son NK a9112c0480 remove DKIM-Signature for custom domain 2019-12-15 18:55:17 +02:00
Son NK 66b59a265a remove redundant check in handle_RCPT to support custom domain. Add check to reply phase. 2019-12-15 18:55:16 +02:00
Son NK fbf4a97a3e do NOT modify "to" header as it's not displayed in mail client anyway 2019-12-15 18:55:15 +02:00
Son NK e0bf5245a3 remove DKIM-Signature as Postfix will add this header 2019-12-15 18:55:15 +02:00
Son NK 64f7d04960 fix forward phase: use reply email as envelope-from 2019-12-15 18:55:15 +02:00
Son NK 1cb8282cb2 change the to: header so target is user email 2019-12-15 18:55:15 +02:00
Son NK 9eb85abac4 remove srs 2019-12-15 18:55:15 +02:00
Son NK 837e1ffcf6 add List-Unsubscribe-Post header. Block alias directly if POST, otherwise ask user confirmation. 2019-12-15 18:55:15 +02:00
Son NK cb14277bc7 add List-Unsubscribe header to block quickly an alias 2019-12-15 18:55:15 +02:00
Son NK 75e07fff04 put original name and email to from: header 2019-12-15 18:55:15 +02:00
Son NK 5b1819e891 do not modify subject 2019-12-15 18:55:15 +02:00
Son NK 7207312ec9 refactor email_handler: create handle_forward and handle_reply 2019-12-15 18:55:15 +02:00
Son NK 34cf72eaee create POSTFIX server 2019-12-15 18:55:15 +02:00
Son NK 0ae7f2d68a no need to modify reply-to. Remove this header if present. 2019-12-15 18:55:15 +02:00
Son NK a70928d166 Modify From: header to reply_email so email passes DMARC 2019-12-15 18:55:15 +02:00
Son NK a28c90f110 Change subject to let user know the email is forwarded from SL 2019-12-15 18:55:15 +02:00
Son NK cf3a2258b2 return 510 if no such alias 2019-12-15 18:55:15 +02:00
Son NK 49d66c4226 tentative to fix UnicodeEncodeError https://sentry.io/organizations/son/issues/1339911828/?project=1478143&query=is%3Aunresolved 2019-12-15 18:55:15 +02:00
Son NK 032322a3d4 log forwarded emails 2019-12-15 18:55:14 +02:00
Son NK a5a3bbbd63 if an alias is disabled, accept email but not forward to user inbox 2019-12-15 18:55:14 +02:00
Son NK e335ae7d52 fix replace_header 2019-12-15 18:55:13 +02:00
Son NK 8b67a13581 fix case where reply-to is already present 2019-12-15 18:55:13 +02:00
Son NK 6015dbd4d1 Revert "try fixing spam issue: use personal email in forward phase"
This reverts commit 2f46a225e1b9099c2905a771132445caf42b4284.
2019-12-15 18:55:13 +02:00
Son NK bfb1c27528 try fixing spam issue: use personal email in forward phase 2019-12-15 18:55:13 +02:00
Son NK b80dbdf60b notify admin if someone uses reply phase 2019-12-15 18:55:13 +02:00
Son NK a01c94187f v1 of email handler, forward and reply phase work! 2019-12-15 18:55:13 +02:00
Son NK 80babefdb9 use 1.1.1.1 as host IP 2019-12-15 18:55:13 +02:00
Son NK 8f878b4c5d try to make working with postfix outside docker (in host) 2019-12-15 18:55:13 +02:00
Son NK c2546cb0de fix test 2019-12-15 18:55:13 +02:00
Son NK d3985e2cf3 email handler: forward phase. Todo: reply phase 2019-12-15 18:55:13 +02:00