Commit Graph

749 Commits

Author SHA1 Message Date
Son NK 157b7adbda improve logging 2021-03-08 12:11:47 +01:00
Son NK 26613cdeeb fix handling auto reply 2021-03-08 12:09:27 +01:00
Son NK 796ad58dca improve logging 2021-03-08 12:08:23 +01:00
Son NK 31ff8b962b handle the auto responder email 2021-03-06 17:44:46 +01:00
Son 6f37bf858d take into account NOT_SEND_EMAIL in sl_sendmail 2021-03-06 16:23:19 +01:00
Son 3f7d325e6e remove the exception logging when a transaction isn't found 2021-02-06 16:00:32 +01:00
Son NK 00fde00d53 black 2021-01-28 18:10:29 +01:00
Son NK 2831cd04d8 delete all headers in forward phase 2021-01-28 17:26:02 +01:00
Son NK 40e4d8e232 Use POSTFIX_PORT_FORWARD during forward phase 2021-01-28 13:50:24 +01:00
Son NK 3544db8f1c sanitize contact.website_email in bounce 2021-01-26 10:04:03 +01:00
Son NK 4cd49b66c2 use VERP for transactional email: remove SENDER, SENDER_DIR 2021-01-26 09:59:22 +01:00
Son NK 3e1ef3358b Create bounce when handling bounce 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 fcc04ba929 handle case where email_log is deleted 2021-01-25 21:27:34 +01:00
Son NK 0de5b5a9bf revert change 2021-01-25 18:45:38 +01:00
Son NK 604ba285b1 replace "550 SL E3" by "550 5.1.1 SL E3 " 2021-01-25 17:34:41 +01:00
Son NK 0d6338b525 fix disable alias email subject 2021-01-19 10:36:11 +01:00
Son NK f94b82c134 remove unused import 2021-01-19 10:33:20 +01:00
Son NK d1d7a93ca5 remove handle_bounce_deprecated 2021-01-19 10:27:57 +01:00
Son NK 7986ff0819 Handle the case msg.get_all return Header object (and not string) 2021-01-15 11:30:43 +01:00
Son NK f4218a0693 Log exception when handle_bounce_deprecated is used 2021-01-13 11:03:44 +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 56864ff0df improve log 2021-01-11 15:53:08 +01:00
Son NK 8764a050d5 fix orig email not correctly uploaded in handle_bounce_forward_phase() 2021-01-11 15:25:54 +01:00
Son NK a044c47295 fix 2021-01-11 15:10:46 +01:00
Son NK f1e9b2b5d7 use VERP: send email from bounce address 2021-01-11 14:55:55 +01:00
Son NK 01858ac452 sanitize contact email 2021-01-11 12:27:02 +01:00
Son NK ef7fae32b1 remove the "Hi {name}" from email template 2021-01-11 10:23:34 +01:00
Son NK 7e53b97f81 handle the case where alias is deleted in handle_bounce_reply_phase() 2021-01-04 19:25:15 +01:00
Son NK 30593f9c78 store spam report 2021-01-04 14:43:57 +01:00
Son NK aae63006c6 handle bounce report sent to alias 2021-01-04 14:22:07 +01:00
Son NK 291b9a7d55 use warning level for reply message detected as spam 2020-12-31 11:30:53 +01:00
Son NK 01da9aafcd retry get_spam_score 1 more time 2020-12-31 11:26:12 +01:00
Son NK 1c22e14f68 SMTPServerDisconnected can also happen when creating SMTP server object 2020-12-31 11:22:45 +01:00
Son NK 0df4d1a93d add more logging 2020-12-29 12:17:24 +01:00
Son NK e06f3dc209 fix template 2020-12-21 11:57:12 +01:00
Son NK 6441c22bcd use warning level for email and mailbox same domain error. Update email wording. 2020-12-21 09:39:26 +01:00
Son NK da5bb6f9b5 no need to add alias to To header 2020-12-19 17:28:18 +01:00
Son NK e48f19afb5 use info level for set message-id 2020-12-18 15:34:01 +01:00
Son NK efc6b32ce0 black 2020-12-16 20:34:31 +01:00
Son NK 866ef1c139 increase the max_nb_alert 2020-12-16 20:30:27 +01:00
Son NK 2f803e4714 refactoring: move template to folder 2020-12-16 18:51:14 +01:00
Son NK ae9abe8512 remove unused var 2020-12-16 18:50:09 +01:00
Son NK 30b2182694 use should_disable to decide whether an alias should be disabled 2020-12-16 18:50:09 +01:00
Son NK 8d72d66d08 keep References and In-Reply-To in reply phase for a correct email thread 2020-12-11 11:13:19 +01:00
Son NK b2e1682704 do not override message-id in forward phase 2020-12-11 11:12:38 +01:00
Son NK c1ad161db7 add email_log to get_spam_score 2020-12-11 11:05:01 +01:00
Son NK 93503d4cd3 Do not rely on revert to delete EmailLog object when pgp fails 2020-12-11 11:03:52 +01:00
Son NK f03bde1d8d remove _MESSAGE_ID 2020-12-11 11:02:52 +01:00
Son Nguyen Kim bf139f83b3
Merge pull request #342 from herrboyer/linting
Linting
2020-12-07 17:45:50 +01:00
Renaud Boyer 5d948faf56 black 2020-12-06 22:11:58 +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
Renaud Boyer b16bfaac35 liniting 2020-12-06 13:54:59 +01:00
Son NK d150dfacdb rename contact_from_header -> from_header 2020-12-05 18:15:53 +01:00
Son NK 8c5f311367 prefer using Reply-To header when creating a new contact 2020-12-05 18:15:00 +01:00
Son NK b7fdbe7721 log more 2020-12-02 12:40:29 +01:00
Son NK 4d89ac4158 replace replace_str_in_msg() by replace() 2020-11-30 15:15:44 +01:00
Son NK 22b082fd55 use warning for invalid contact email 2020-11-30 10:50:16 +01:00
Son NK 59745b68d0 use warning level when cannot encrypt using python-gnupg 2020-11-27 20:35:57 +01:00
Son NK e7b83fadbc trigger build 2020-11-26 10:38:48 +01:00
Son NK 3efa96020b use warning level for invalid contact email 2020-11-26 10:06:16 +01:00
Son NK e2f0a72ab7 log headers in case a contact email is skipped 2020-11-26 09:49:03 +01:00
Son NK dcd116f11a use mail_from as fallback when contact_email is not valid 2020-11-25 17:50:25 +01:00
Son NK ac1a6f5613 skip invalid contact in replace_header_when_forward() 2020-11-25 15:21:01 +01:00
Son NK dfcb74dc87 do not create contact with invalid email in get_or_create_contact() 2020-11-25 15:20:42 +01:00
Son NK 609d59d23f improve logging 2020-11-25 15:20:00 +01:00
Son NK 2f882b81fe sleep before retry 2020-11-25 14:56:54 +01:00
Son NK 5e1a68cdee retry 1 more if SMTPServerDisconnected 2020-11-25 14:43:02 +01:00
Son NK 4f211bba61 fix subject not correctly decoded in spf-fail email 2020-11-25 09:53:27 +01:00
Son NK 272c5628bb fix 2020-11-24 17:02:09 +01:00
Son NK 297857a140 Remove _MAILBOX_ID_HEADER 2020-11-24 16:50:55 +01:00
Son NK 5231483026 add doc 2020-11-24 16:38:54 +01:00
Son NK fb465ba03e use exception log for the case where mailbox is an alias 2020-11-24 16:38:49 +01:00
Son NK 54942cdf65 set EmailLog.mailbox_id in forward and reply phase. A EmailLog for each mailbox in forward phase. 2020-11-24 16:38:34 +01:00
Son NK c28872288b black 2020-11-24 11:28:14 +01:00
Son NK c707342695 Use pgp_enabled() instead of pgp_finger_print 2020-11-24 11:22:41 +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 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 c53fe90484 fix email subject 2020-11-18 16:16:37 +01:00
Son NK 30185a2798 handle the case where reply_email is not ascii 2020-11-18 16:11:00 +01:00
Son NK 78cb49095a fix reply_email not set 2020-11-18 11:48:09 +01:00
Son NK 319078fceb use contact email when generating reply-email 2020-11-18 10:24:39 +01:00
Son NK 9154b4656d refactor: create is_reply_email() 2020-11-16 19:22:19 +01:00
Son NK 75ba1669e0 Create generate_reply_email() and refactor 2020-11-16 19:15:09 +01:00
Son NK 496be08639 handle case where contact address is empty/invalid 2020-11-14 15:55:53 +01:00
Son NK b4d1b3950d log SA report 2020-11-12 12:11:39 +01:00
Son NK c3f73b25b2 decode the subject 2020-11-09 21:16:50 +01:00
Son NK 21839d579c log more 2020-11-09 17:03:47 +01:00
Son NK 2cc7cb6a37 use to_bytes instead of .as_bytes() 2020-11-09 17:02:10 +01:00
Son NK 4d03d2fe04 Fix subject 2020-11-07 17:23:28 +01:00
Son NK 78f5f27d5d add more debugging 2020-11-07 16:12:28 +01:00
Son NK 6a68141d8d Use mailbox generic subject for forwarded emails 2020-11-07 13:00:45 +01:00
Son NK 5ef3ab4d74 disable handle_bounce_reply_phase 2020-11-05 10:26:19 +01:00
Son NK d0ca773376 not forward email that has invalid from address 2020-11-05 10:26:09 +01:00
Son NK 352cd978bd add debug 2020-11-04 19:42:20 +01:00
Son NK 6585aef443 use warning level 2020-11-04 16:11:32 +01:00
Son NK 3dee121bec improve handle_bounce_reply_phase 2020-11-04 15:38:26 +01:00
Son NK 3a03dec077 simplify code 2020-11-04 14:55:54 +01:00
Son NK 009236e623 add debug code when bounce message cannot be parsed 2020-11-04 13:37:33 +01:00
Son NK 6c626520d3 handle_bounce_reply_phase 2020-11-04 12:32:15 +01:00
Son NK 5a7df14d58 use msg.as_bytes() to sign instead of as_string() 2020-11-03 13:30:37 +01:00
Son NK 8d0e243c83 sign PGP forwarded email if PGP_SENDER_PRIVATE_KEY 2020-11-02 19:09:57 +01:00
Son NK 63788125da save bounce email sent to an alias when 2020-11-02 15:10:03 +01:00
Son NK c41c36acaa set "date" header in forward phase if needed 2020-11-02 14:53:22 +01:00
Son NK 38877598cf fix handle_reply: do not delete _MIME_HEADERS headers, add Date header 2020-11-02 14:51:37 +01:00
Son NK 756e8080ab handle case msg.get_payload(decode=True) is None 2020-11-01 18:38:21 +01:00
Son NK 1d0aa0f900 fix doc 2020-11-01 18:13:50 +01:00
Son NK 7337110110 Remove all headers in reply phase 2020-11-01 18:12:09 +01:00
Son NK 593e81705b Handle case Content-Type and Mime-Version are missing in prepare_pgp_message 2020-11-01 18:06:28 +01:00
Son NK 53e57eee42 clone orig message in prepare_pgp_message 2020-11-01 18:06:05 +01:00
Son NK 7ca74eaa6f replace-reverse-alias and pgp encryption before modifying message header in reply phase 2020-11-01 18:02:43 +01:00
Son NK 0307793666 use pgpy as fallback for gpg 2020-10-28 17:07:53 +01:00
Son NK 5a190ed840 use pgpy if python-gnupg fails 2020-10-28 12:21:24 +01:00
Son NK 9210459a72 add pgpy
- add pgpy to poetry
- add test PGP keys to local_data
- add encrypt_file_with_pgpy()
- use randomly pgpy
2020-10-28 11:50:14 +01:00
Son NK aa1cac521b Set X-SimpleLogin-Envelope-From header in forward phase 2020-10-27 11:03:56 +01:00
Son NK 8f6550f992 update contact.mail_from and contact.from_header if needed 2020-10-27 10:40:54 +01:00
Son NK 4a7b73a218 use warning log for disabled account 2020-10-26 10:33:53 +01:00
Son NK bdec727cd1 allow mailbox's authorized address to unsubscribe alias 2020-10-23 13:29:20 +02:00
Son NK bfa59dcdd9 fix 2020-10-22 12:26:45 +02:00
Son NK ea45ac119e Refactor: create Alias.unsubscribe_link 2020-10-22 10:37:02 +02:00
Son NK f624085aa3 handle newsletter unsubscribe when the subject=user_id* 2020-10-22 10:34:52 +02:00
Son NK 1fcf166c00 small refactor: add should_add_dkim_signature 2020-10-15 16:24:04 +02:00
Son NK e79522b638 take into account Premium domains 2020-10-15 16:21:31 +02:00
Son NK 805e78cad1 rename email_belongs_to_alias_domains -> email_belongs_to_default_domains 2020-10-14 18:46:05 +02:00
Son NK 8268568f08 add mailbox.disabled column. Disable a mailbox if it fails tests for 10 days consecutive. 2020-10-12 13:28:21 +02:00
Son NK 6993721ae2 disable email forwards/sending if user is disabled 2020-10-04 12:49:43 +02:00
Son NK 6253a4eb23 set SpamAssassin timeout to 300s 2020-09-30 14:03:19 +02:00
Son NK abc42df0fb create get_spam_score() as a sync function, use a simpler version for running MailHandler. Remove async/await 2020-09-30 11:05:21 +02:00
Son NK 61e4455406 logging more for spamassassin 2020-09-29 16:00:53 +02:00
Son NK d7ca639dc1 format 2020-09-29 13:11:04 +02:00
Son NK 65938d2fb7 improve email template 2020-09-29 13:03:15 +02:00
Son NK e8ccbced59 refactor code: wrap smtp.sendmail into sl_sendmail() 2020-09-29 12:57:14 +02:00
Son NK 17ef292779 update reply-must-use-personal-email template 2020-09-29 11:00:50 +02:00
Son NK 0a7643b367 take into account mailbox authorized address when check for spoofing 2020-09-28 17:43:09 +02:00
Son NK 063885ccf7 Add get_mailbox_from_mail_from() 2020-09-28 17:41:16 +02:00
Son NK 740d31871d remove asyncio.shield 2020-09-17 17:03:20 +02:00
Son NK 5f8fff5af3 wrap shield around aiospamc.check to avoid the task being canceled 2020-09-16 19:47:12 +02:00
Son NK 25118dff9b use parseaddr_unicode instead of parseaddr 2020-09-16 17:28:15 +02:00
Son NK 5c8d31111c add contact to handle_unknown_mailbox logging 2020-09-16 17:24:42 +02:00
Son NK b9b442294b remove unnecessary sanitize on mailbox email 2020-09-14 20:02:46 +02:00
Son NK cb2033443c fill up contact mail_from, from_header if possible 2020-09-14 18:22:26 +02:00
Son NK 1ab36bd22b remove unnecessary email address sanitize 2020-09-14 17:38:48 +02:00
Son NK ed2e748d1e sanitize envelope mail_from and rcpt_tos 2020-09-14 17:30:01 +02:00
Son NK e6dd2f1717 do not forward to unverified mailbox 2020-09-10 09:38:30 +02:00
Son NK 0c9106717b handle case where contact is concurrently created 2020-09-09 17:00:07 +02:00
Son NK 15d7f6407e fix compatible with mailvelope add name=encrypted.asc 2020-09-08 11:10:22 +02:00
Son NK e36768824f handle the case contact already added 2020-09-03 19:42:52 +02:00
Son NK b83c513607 use warning level 2020-09-03 15:43:33 +02:00
Son NK 0dbc755790 use warning level when not able to parse email-log-id 2020-09-03 15:43:01 +02:00
Son NK a25559dace able to choose port to listen on in email_handler. Default to 20381 2020-09-02 17:36:11 +02:00
Son NK d97966a2e8 use warning level when cannot parse mailbox-id 2020-09-02 10:26:46 +02:00
Son NK 5ea3d1bd42 use warning level for when email_log cannot be parsed 2020-09-02 10:25:12 +02:00
Son NK b7b4c07cd3 use warning level for SMTPRecipientsRefused error 2020-09-02 10:20:04 +02:00
Son NK c03bb70755 handle SMTPRecipientsRefused in forward phase 2020-09-02 10:16:13 +02:00
Son NK 916e6a1a7f remove whitespace for rcpt in forward phase 2020-09-02 09:58:58 +02:00
Son NK 85b87bbacb improve send_email_with_rate_control to use on any day range 2020-08-31 17:32:46 +02:00
Son NK 8079746e47 handle case where alias mailbox is invalid 2020-08-30 19:22:21 +02:00
Son NK 171100eda7 return 421 in case mailbox is invalid 2020-08-30 19:08:53 +02:00
Son NK e117726cd9 send alert email when a mailbox is an email alias 2020-08-30 19:06:50 +02:00
Son NK e4271f725c update "reply must from mailbox" email wording 2020-08-27 11:12:48 +02:00
Son NK a6df989a8f update cycle email subject 2020-08-27 11:10:16 +02:00
Son NK 4a90ea9aca send warning about email cycle at most once 2020-08-27 10:43:48 +02:00
Son NK fdedc24358 black new version 2020-08-27 10:20:48 +02:00
Son NK bb6e2a35ca send at max 1 email / day for the cycle email issue 2020-08-27 10:16:13 +02:00
Son NK 26ecf38760 use warning log level for cycle email issue 2020-08-27 10:15:40 +02:00
Son NK 828d9e4fe1 ignore spoof check if alias.disable_email_spoofing_check 2020-08-26 14:39:51 +02:00
Son NK ab911fd55e do not forward cycle email: email sent to alias from its mailbox 2020-08-25 12:51:19 +02:00
Son NK ce791567f1 delete header if empty when replacing header 2020-08-25 12:51:19 +02:00
Son NK 61fd81489f Set _EMAIL_LOG_ID_HEADER header for reply phase 2020-08-25 12:51:19 +02:00
Son NK b53cc94310 set "X-SimpleLogin-Type" header for reply phase 2020-08-25 12:51:19 +02:00
Son NK d410b34b50 set a custom Message-ID header 2020-08-25 12:51:19 +02:00
Son NK 0bb10d8fc3 add spam score processing time for forward phase 2020-08-24 18:39:16 +02:00
Son NK ffa9304d00 log waiting time for get_spam_score 2020-08-24 17:47:56 +02:00
Son NK 9cf807f7bd special handling for case when alias can't be disabled 2020-08-24 10:48:54 +02:00
Son NK 29b6b52a62 try to get email log and mailbox from bounce report 2020-08-24 10:23:49 +02:00
Son NK 06c48244e4 black 2020-08-21 12:03:23 +02:00
Son NK dc8c2f403e try to fix Message.as_bytes() by trying different policies 2020-08-21 12:01:11 +02:00
Son NK 01afb7557c small refactoring 2020-08-21 10:47:10 +02:00
Son NK 2b2512e775 no need to create a copy of message when there's only 1 mailbox 2020-08-21 10:41:50 +02:00
Son NK 5bb4c20fba fix nb_bounced computation 2020-08-21 10:32:10 +02:00
Son NK 90eae05e9e better logging 2020-08-21 10:20:08 +02:00
Son NK 386fcbdc3a refactoring 2020-08-21 10:18:58 +02:00
Son NK a3e052cc7b black 2020-08-20 14:28:57 +02:00
Son NK db0e197500 set the email log that has been bounced 2020-08-20 14:27:05 +02:00
Son NK 1de57119c4 add missing commit 2020-08-20 11:58:46 +02:00
Son NK 50683be4f8 increase spamassassin timeout to 300s 2020-08-17 11:42:46 +02:00
Son NK 38bf117f29 move the lock sync to _handle 2020-08-17 11:40:58 +02:00
Son NK d8a415c00a do not use aiostmpd controller 2020-08-17 11:39:13 +02:00
Son NK 24d8babe46 handle case spamassassin can't be reached 2020-08-16 21:54:19 +02:00
Son NK cbdd080587 revert port binding on email handler 2020-08-16 19:34:00 +02:00
Son NK 6835c5b69d handle case cannot parse mailbox_id 2020-08-16 18:55:14 +02:00
Son NK a3a99ac3f4 use lock to handle 1 email at a time 2020-08-16 18:51:12 +02:00
Son NK d99d186bc0 revert the ignore AssertionError commit 2020-08-16 18:50:20 +02:00
Son NK 61a8f1e676 ignore the "Popped wrong app context" Assertion Error raised by AppContext 2020-08-16 15:34:44 +02:00
Son NK d4a6269e43 bind email handler to 127.0.0.1 instead of 0.0.0.0 2020-08-16 14:51:40 +02:00
Son NK 98a9e88ce4 fix spamassassin: add ending linebreak 2020-08-16 14:34:50 +02:00
Son NK 1ab9c926dd set email_log.spam_score 2020-08-16 14:28:47 +02:00
Son NK d738997c4e return 421 if any unexpected error happen 2020-08-16 11:10:01 +02:00
Son NK 79853b7736 use a timeout for get_spam_score 2020-08-16 10:22:16 +02:00
Son NK bf555ed605 detect spam in reply phase 2020-08-15 16:53:57 +02:00
Son NK 673b08712c use SPAMASSASSIN server if available 2020-08-15 16:38:16 +02:00
Son NK 7e5deef34f add time measures to email_handler 2020-08-11 17:32:04 +02:00
Son NK dc206b41c7 lighten mail handler 2020-08-11 16:31:08 +02:00
Son NK d89e41d0e5 use user.max_spam_score if present 2020-07-23 11:11:43 +02:00
Son NK 6faaacc972 add more logging 2020-07-23 10:32:10 +02:00
Son NK 6437ee46e0 use LOG.exception instead of LOG.error to provide stacktrace 2020-07-17 12:59:07 +02:00
Son NK 7a20261aae add more info to error message 2020-07-05 16:25:54 +02:00
Son NK 85bb30abb0 Notify user can reply cannot be sent 2020-06-20 16:19:01 +02:00
Son NK c61e7c697d call forward_email_to_mailbox on the msg copy 2020-06-12 00:02:45 +02:00
Son NK 9c9319c94e handle emails sent to sender 2020-06-10 13:57:23 +02:00
Son NK 0c4e48c906 remove bounced_email param from send_email_with_rate_control 2020-06-10 12:17:04 +02:00
Son NK c36870daa8 force convert header to string if needed 2020-06-10 09:34:58 +02:00
Son NK 53e9281204 avoid forward email to invalid mailbox 2020-06-09 17:16:32 +02:00
Son NK 9b1ca0a2f1 return 421 when pgp encryption fails 2020-06-08 13:54:42 +02:00
Son NK b962d6a2c1 encrypt sent email if contact has PGP enabled 2020-06-07 13:40:24 +02:00
Son NK f4beb81195 refactor load_pgp_public_keys 2020-06-07 12:46:59 +02:00
Son NK 16df2acb29 stop the email handler process when PGP error 2020-06-07 11:41:35 +02:00
Son NK 708816cb05 use warning level for SPF fail message 2020-06-06 23:38:19 +02:00
Sibren Vasse 5c50628d36 Fix reverse alias replacement multipart message 2020-05-28 20:25:51 +02:00
Son NK c8c06aa10e do not automatically disable alias if it cannot be disabled 2020-05-27 14:12:32 +02:00
Son NK a512fbc6e5 use POSTFIX_PORT instead of 25 if it's set 2020-05-21 20:43:12 +02:00
Son Nguyen Kim 57e3e29e70
Merge pull request #200 from SibrenVasse/dkim_fix
Fix reverse alias replacement
2020-05-21 20:08:38 +02:00
Son NK 5ada83d48d use warning level for "Cannot parse original message" error 2020-05-21 20:05:07 +02:00
Son NK 9a423f3247 make should_append_alias case insensitive 2020-05-20 22:35:28 +02:00
Son NK 3898d2d7a6 fix 2020-05-20 22:34:06 +02:00
Son NK 93d972df09 make sure to use lowercase for alias email 2020-05-20 18:12:14 +02:00
Sibren Vasse 1df9f8a95c Do reverse alias replacement before DKIM signing and replace by contact email 2020-05-20 10:56:42 +02:00
Sibren Vasse e905e151ca Create user setting for replacing reverse alias (default: false) 2020-05-17 19:40:46 +02:00
Son NK b84b7c332e replace the "ra+string@simplelogin.co" by the alias 2020-05-17 14:11:24 +02:00
Son NK 6300c0eaa1 an alias can still be disabled even of original message cannot be parsed. 2020-05-17 14:01:55 +02:00
Son NK f35b9e7542 do not encrypt if alias disables PGP 2020-05-16 20:51:07 +02:00
Son NK 80f614da6c refactor: remove unused var 2020-05-16 20:51:07 +02:00
Son NK f577adc0d4 log more info 2020-05-16 18:24:51 +02:00
Son NK 362d101bab Merge branch 'master' into multiple-mailboxes
# Conflicts:
#	app/dashboard/templates/dashboard/custom_alias.html
#	email_handler.py
#	templates/emails/com/newsletter/mobile-darkmode.html
2020-05-16 11:28:25 +02:00
Son Nguyen Kim ec8f46f01a
Merge pull request #191 from SibrenVasse/spam
Also enable spam check when pgp is enabled
2020-05-15 18:06:57 +02:00
Sibren Vasse 8769383724 Also enable spam check when pgp is enabled 2020-05-15 16:34:07 +02:00
Son NK 3d4b44dd15 handle the case contact_from_header can be None 2020-05-15 15:46:37 +02:00
Son NK c43fa65cd4 If From header is empty, try creating contact with envelope sender 2020-05-13 22:35:27 +02:00
Son NK 54ce1dc964 remove unnecessary max_nb_email limit in spf 2020-05-11 14:46:18 +02:00
Son NK 36a8e311ea Merge branch 'master' into multiple-mailboxes 2020-05-11 10:21:59 +02:00
Son NK 7c55c5c44a return 250 instead of 451 when SPF fails 2020-05-11 10:21:44 +02:00
Son NK 0d117126db save the mailbox that a bounce affects 2020-05-10 20:09:54 +02:00
Son NK 5b71b34f9e handle alias unsubscribe 2020-05-10 20:09:54 +02:00
Son NK 336bdb196d Detect unknown mailbox using envelope mail_from 2020-05-10 20:09:54 +02:00
Son NK 33d578c78e parse _MAILBOX_ID_HEADER to handle bounce message 2020-05-10 20:09:54 +02:00
Son NK 8d65175ac5 set mailbox ID in X-SimpleLogin-Mailbox-ID header 2020-05-10 20:09:54 +02:00
Son NK 97e1c334af call strip() on rcpt_to just to be sure 2020-05-10 20:09:54 +02:00
Son NK 4b479defa8 Support alias having multiple mailboxes in forward phase 2020-05-10 20:09:54 +02:00
Son NK 7f6ba313fd add strip() to rcpt_to just in case 2020-05-10 20:09:54 +02:00
Son NK 2755e67c31 simplify code: replace mailbox_email by mailbox.email 2020-05-10 20:09:54 +02:00
Son NK 59036972f1 refactor handle_forward: move the disabled alias case to the beginning 2020-05-10 20:09:54 +02:00
Son NK b5e7f05bfc allow user sends emails to his alias from his mailbox 2020-05-10 20:09:54 +02:00
Son NK f59ccd4018 optimize import email_handler 2020-05-10 20:09:54 +02:00
Son NK 9ddb8ff2d4 add more info to spf alert email. Set the max number of emails per 24h to 1 2020-05-10 10:37:56 +02:00
Son NK a48f7db599 refactor: create handle_unknown_mailbox() 2020-05-09 23:12:30 +02:00
Son NK 9234527ea6 refactor: put spf handling into a method 2020-05-09 23:09:11 +02:00
Son NK 178515dbde alert user when spf fails 2020-05-09 23:00:30 +02:00
Son NK c6e293ef8e small refactor 2020-05-09 22:54:55 +02:00
Son NK 7833d4609f Use send_email_with_rate_control when alerting user 2020-05-09 20:45:04 +02:00
Son NK e84e4d50c7 add logging 2020-05-09 17:48:57 +02:00
Son NK 0add756654 make sure SPF exception does not stop reply-phase 2020-05-09 17:34:49 +02:00
Son NK 7654992fc2 refactoring: replace "X-SimpleLogin-Client-IP" by constant 2020-05-09 17:31:37 +02:00
Son NK bd68a52158 make sure to remove "X-SimpleLogin-Client-IP" during forward 2020-05-09 17:30:21 +02:00
Son NK 5ec0ea5f6c Report error when SPF fails on emails sent from mailbox. Return 451 instead of 550 to avoid bounce emails. 2020-05-09 14:52:39 +02:00
Sibren Vasse 001079bdc5 Enforce SPF 2020-05-09 14:15:08 +02:00
Sibren Vasse 0e4799030d Add default alias name to custom domain 2020-05-03 19:35:02 +02:00
Son NK ba081a597a Fix: do not use spam check on disabled alias 2020-04-27 18:18:40 +02:00
Son NK 3063fee472 Use alias name in reply phase 2020-04-26 10:41:24 +02:00
Son NK 0f71eff531 handle the case some email providers might strip off the = suffix 2020-04-24 09:09:11 +02:00
Son NK 703d9385b5 Fix "Content-Transfer-Encoding" issue when encrypting emails 2020-04-14 20:49:48 +02:00
Son NK 6cfd534192 Add LOAD_PGP_EMAIL_HANDLER param. Load PGP keys if LOAD_PGP_EMAIL_HANDLER is set 2020-04-14 12:46:12 +02:00
Son NK ed76a8ae8d reformat 2020-04-13 20:51:29 +02:00
Son NK 6a617ceeea Add custom error code for 550 SL error 2020-04-13 19:33:45 +02:00
Son NK f3244eb274 force convert contact_from_header to string 2020-04-05 15:42:09 +02:00
Son NK 2619333cc6 remove uses of website_from 2020-04-05 15:39:48 +02:00
Son NK 18844b7011 use full email header in replace_header_when_reply 2020-04-05 15:27:35 +02:00
Son NK f78e790b71 set contact name in get_or_create_contact, use contact.new_addrs in replace_header_when_forward 2020-04-05 15:24:09 +02:00
Son NK b01533e9ac Update contact name in forward phase 2020-04-05 14:50:12 +02:00
Son NK a7eefe8232 rename 2020-04-05 12:59:36 +02:00
Son NK 3a845af2fa use website_email instead of website_from in spam-email 2020-04-05 12:00:01 +02:00
Son NK a081298756 use website_email instead of website_from in bounce-email 2020-04-05 11:59:24 +02:00
Son NK b2f22db9f6 use website_email instead of website_from for automatic-disable-alias email 2020-04-05 11:58:13 +02:00
Son NK c163bdc14f use warning for grey listing 2020-04-04 21:59:42 +02:00
Son NK 0657f3dbc2 rename 2020-04-04 20:06:35 +02:00
Son NK f7e5ab1e34 reaname 2020-04-04 19:21:31 +02:00
Son NK eab45beef2 Use error level when greylisting happens 2020-04-04 18:07:22 +02:00
Son NK 8caebc0142 Return 421 when there's too much activity on an alias or mailbox 2020-04-04 16:27:22 +02:00
Son NK 661547ec3a refactor: avoid calling "with app.app_context()" all the time 2020-04-04 16:09:24 +02:00
Son NK c1f5c07d86 Move alias auto-creation to alias_utils 2020-04-04 15:24:27 +02:00
Son NK 27d048f70b add send-from-alias-from-unknown-sender template in html 2020-04-03 23:39:07 +02:00
Son NK 3550447a66 use BytesIO as input when encrypting 2020-04-02 21:30:36 +02:00
Son NK ed8caa237a use email.message_from_bytes instead of Parser(policy=SMTPUTF8).parsestr 2020-04-02 21:30:36 +02:00
Son NK 55b1ce2067 use a different s3 folder for spams 2020-04-02 21:30:36 +02:00
Son NK 55190ff358 use msg.as_bytes() instead of msg.as_string().encode() 2020-04-02 21:30:36 +02:00
Son NK 0517fcfd48 Remove the X-Sender during the reply phase 2020-04-01 20:33:27 +02:00
Son NK c8ba6e8013 Special handling for self-forward case 2020-04-01 20:32:26 +02:00
Son NK 62e028c30f Remove the workaround 2020-03-31 22:19:15 +02:00
Son NK f34c1f555f quick workaround for prod 2020-03-30 22:37:41 +02:00
Son NK 3925ebce1e reformat 2020-03-30 22:12:35 +02:00
Son NK bb12b35d2c delete "Received" header in reply phase 2020-03-30 22:05:51 +02:00
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