Commit Graph

748 Commits

Author SHA1 Message Date
Son 5127534a00 add more logging 2022-03-11 08:56:27 +01:00
Son ed12e47077 reduce nb of commit 2022-03-10 08:33:26 +01:00
Son fb00c18d5a create a notification when an alias is disabled 2022-03-09 17:59:02 +01:00
Son b6b917eba8 add more log 2022-03-08 18:35:18 +01:00
Son b711743d6e fix 2022-03-08 10:31:20 +01:00
Son 89218fab7f fix "local variable 'alias_id' referenced before assignment" 2022-03-08 10:30:29 +01:00
Son 350f498b94 lessen alias automatic disable check 2022-03-07 15:50:58 +01:00
Son 99dc45e09a refactor 2022-03-07 15:45:36 +01:00
Son 71136669e9 return the block reason in should_disable() 2022-03-07 15:44:27 +01:00
Son 6c8d4310e5 only set the X-SimpleLogin-Envelope-From header if user has this option enabled 2022-02-25 12:24:54 +01:00
Son Nguyen Kim 7d008228e3
Merge pull request #811 from cquintana92/feature/ignore-or-reject-for-blocked-contacts
Allow to configure ignore or reject response for blocked contacts
2022-02-21 15:55:48 +01:00
Carlos Quintana ee9170bb17
Allow to configure ignore or reject response for blocked contacts 2022-02-21 12:52:21 +01:00
Adrià Casajús 33163660f7
PR comments 2022-02-21 12:30:26 +01:00
Adrià Casajús b069f81920
Reply only once per user even if they send it from any mailbox 2022-02-17 14:33:04 +01:00
Adrià Casajús 1b525a55a5
Add debug message 2022-02-16 18:39:18 +01:00
Adrià Casajús 15ce7b00d8
Reply to noreply@... once per user 2022-02-16 18:38:31 +01:00
Son 78c14fa67e create notification for bounce email during reply phase 2022-01-24 16:13:45 +01:00
Son 90fa4abf69 create a notification for a bounce email 2022-01-24 16:10:36 +01:00
Son efdb0a60d3 no need to raise error if email processing takes more than 60s 2022-01-17 14:42:27 +01:00
Son 8ff3b5ef8e ignore VERPForward error 2022-01-16 11:52:44 +01:00
Son 0e496518ba handle case alias is deleted in handle_hotmail_complaint 2022-01-16 11:47:50 +01:00
Son db24ed8739 remove unused import 2022-01-11 13:23:44 +01:00
Son 2a1ef7beec notify user every time a reply can't be sent 2022-01-11 13:14:47 +01:00
Son 42a29eba90 remove \r or \n from headers before processing 2022-01-11 13:11:28 +01:00
Son 5e7ff7a694 fix logging 2022-01-11 12:29:42 +01:00
Son 9c696bd038 ignore VERPReply 2022-01-09 20:35:57 +01:00
Son f855d27836 delete EmailLog if pgp issue 2022-01-08 16:59:32 +01:00
Son c5e4dd6d16 save email for debug with error name as prefix 2022-01-08 16:58:23 +01:00
Son 4298fe73e6 use warning level 2022-01-08 00:43:49 +01:00
Son 862d0e7a11 warn users if SL is used with another forwarding service 2022-01-08 00:42:03 +01:00
Son ed4acebdb1 delete the email log in reply phase if NonReverseAliasInReplyPhase 2022-01-08 00:28:26 +01:00
Son b23f9fa971 delete email_log if CannotCreateContactForReverseAlias 2022-01-08 00:23:10 +01:00
Son 01ba5e8bf0 return 5** if CannotCreateContactForReverseAlias 2022-01-08 00:16:16 +01:00
Son ed39d47e7a log "Custom/nb_rcpt_tos" metric 2022-01-08 00:11:16 +01:00
Son 20b6ce29fc take into account authorized_address when checking email loop 2022-01-08 00:09:45 +01:00
Son d8627fea97 handle case when non reverse-alias is present in the reply phase 2022-01-07 17:53:06 +01:00
Son 2a1d735800 always ignore loop email 2022-01-07 16:22:35 +01:00
Son fb87225d2d raise error when receiving emails sent from reverse alias 2022-01-07 16:14:21 +01:00
Son 746dfae495 remove unused import 2022-01-07 15:47:54 +01:00
Son d4e1aec875 refactor 2022-01-07 14:57:47 +01:00
Son bf75f8e8ab add more logging 2022-01-07 14:26:58 +01:00
Son 40b6fde2c3 log more 2022-01-07 13:02:16 +01:00
Son 12a7e9b3fa refactor 2022-01-07 12:24:14 +01:00
Son 4fae291251 improve logging 2022-01-07 12:19:51 +01:00
Son 4c63b4c0f1 refactor 2022-01-07 12:18:46 +01:00
Son 5195c9de8b raise error when a non reverse-alias is used during the reply phase 2022-01-07 10:34:08 +01:00
Son 035d238c75 do not delete DATE header 2022-01-07 10:22:46 +01:00
Son db30639380 set Contact.automatic_created during the forward phase 2022-01-07 10:22:02 +01:00
Son ad622df071 make sure a contact with website_email=reverse alias of another contact can't be created 2022-01-07 10:04:12 +01:00
Son bb6aec8b80 fix out of office handling sent by contact 2022-01-06 19:34:17 +01:00
Son 723d871550 add more info to "cannot handle email sent to reply VERP" log 2022-01-06 19:23:13 +01:00
Son e7c473c943 add more logging info 2022-01-06 14:36:10 +01:00
Son 0c25ed939f fix logging 2022-01-05 17:43:11 +01:00
Son 778c90a164 tweak logging 2022-01-05 16:26:31 +01:00
Son 385dd1e755 handle out-of-office email in addition to bounce 2022-01-05 15:30:44 +01:00
Son 6c42872440 add is_bounce() 2022-01-05 15:22:22 +01:00
Son ffc621596a fix is_automatic_out_of_office: only use "Auto-Submitted" header 2022-01-05 15:21:54 +01:00
Son 0abfb82fd1 investigate emails sent to reverse alias from <> 2022-01-05 15:20:17 +01:00
Son de23828df1 convert out-of-office email into normal email 2022-01-05 09:50:58 +01:00
Son 5e2ea81a6c do not consider out-of-office as bounce 2022-01-04 18:06:08 +01:00
Son b24d58bdf3 handle case alias was deleted in the meantime 2021-12-31 12:14:22 +01:00
Son 77f1544a1d remove newrelic init from email handler 2021-12-30 14:15:49 +01:00
Son c5185eddf3 Revert "log "Custom/smtp_connection_time" metric in newrelic"
This reverts commit 378bad6253.
2021-12-30 11:55:48 +01:00
Son 378bad6253 log "Custom/smtp_connection_time" metric in newrelic 2021-12-30 11:46:01 +01:00
Son c2e95f0853 reformat email_handler 2021-12-30 10:24:57 +01:00
Son d80ecfb068 use error log if email processing takes more than 1 minute 2021-12-29 16:30:12 +01:00
Son 9e019ae98a retry sending mail if TimeoutError 2021-12-29 15:17:57 +01:00
Son d8f7323b95 remove unused import 2021-12-29 11:24:12 +01:00
Son 8530abfb2d reduce log level for emails sent from a reverse alias 2021-12-29 11:18:54 +01:00
Son f0e582c1a6 use postfix retry for SMTPServerDisconnected (in addition to SMTPRecipientsRefused) error 2021-12-23 19:34:17 +01:00
Son 879b364a47 return 421 to retry when SMTPRecipientsRefused error 2021-12-23 18:17:29 +01:00
Son eeb24f594a Add OLD_UNSUBSCRIBER and support it 2021-11-22 18:17:07 +01:00
Son dc243d6027 improve logging 2021-11-22 11:23:21 +01:00
Son 77e38e63fe handle hotmail complaint during reply phase 2021-11-21 11:31:28 +01:00
Son fdfa286d3e allow contact email to be case sensitive 2021-11-18 16:44:04 +01:00
Son 225a3ae750 handle Yahoo complaint for transactional email 2021-11-17 14:37:49 +01:00
Son 2b8de82028 handle hotmail complain for transactional email 2021-11-17 14:32:30 +01:00
Son 790f0ed23c return 250 status when handling bounces 2021-11-13 11:21:19 +01:00
Son 4fc6619553 reduce Hotmail abuse report rate 2021-11-10 10:57:22 +01:00
Son 4c1c8a3dc1 fix msg[headers.MESSAGE_ID] can return str 2021-11-10 09:38:20 +01:00
Son 0e24513bcf fix case where msg[headers.IN_REPLY_TO] can be non str 2021-11-08 11:21:01 +01:00
Son 4214efa497 handle the case original_message_id is None in replace_original_message_id 2021-11-05 09:43:58 +01:00
Son 80bbfb6f4b Parse reverse alias first in handle_hotmail_complaint 2021-11-04 10:40:12 +01:00
Son 334dc01a1b fix url 2021-11-03 10:11:52 +01:00
Son 4369137e25 block the sender via one click unsubscribe 2021-11-02 15:44:43 +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 4a5983993e rename file 2021-11-02 11:46:41 +01:00
Son cb0d992ecc rename file 2021-11-02 11:37:46 +01:00
Son Nguyen Kim 10be304865
Merge pull request #668 from szepeviktor/patch-2
Remove unused import
2021-11-02 11:02:05 +01:00
Son f95428a5cc do not delete email log when email can't be sent to a contact 2021-11-02 10:59:17 +01:00
Son 542310f5ca refactor: rename file 2021-11-02 10:58:51 +01:00
Viktor Szépe 271ddb82f2
Remove unused import 2021-11-02 05:39:06 +01:00
Son 6b33e66016 handle the case another matching with original_message_id was created in the mean time 2021-11-01 20:39:53 +01:00
Son 5b5bbcc83c refactor: extract replace_sl_message_id_by_original_message_id 2021-11-01 18:45:10 +01:00
Son 2546fefa51 handle message-id replacement for case a reply is sent to multiple recipients 2021-11-01 18:43:19 +01:00
Son 603e98d0bf remove unnecessary check 2021-11-01 17:58:39 +01:00
Son cf8150b996 handle case original_message_id can be None 2021-10-28 18:41:36 +02:00
Son 5f6ad21e85 improve bounce email notification 2021-10-28 11:43:44 +02:00
Son a4dbbb6ac2 if contact is blocked, do not forward email 2021-10-28 10:19:58 +02:00
Son 7c182d20a4 try parsing the alias from the from header which might contain the reverse alias when handling hotmail complaint 2021-10-26 12:16:57 +02:00
Son a99ac24b72 cron, init app, job runner: wrap in an app context to benefit from app setup like database cleanup, sentry integration, etc 2021-10-26 10:52:28 +02:00
Son 8680c0a739 do do not use the ra+ prefix for reverse alias 2021-10-25 14:33:42 +02:00
Son de0f838950 ignore hotmail bounce that uses 'Undisclosed recipients:;' in :To header 2021-10-25 10:36:50 +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 c5987bcfbb Log message_id 2021-10-19 12:05:41 +02:00
Son a2fcfbbb20 use as_bytes().decode() instead of as_string() in bounce_info 2021-10-19 12:05:35 +02:00
Son 7952ce7ecf sanity check to make sure the message id hasn't been added before 2021-10-19 11:58:05 +02:00
Son c12f3b3e7a Use SL message ID during reply phase. Exchange original SL and original message-id during the forward and reply phase to keep email thread. 2021-10-18 17:35:16 +02:00
Son 9c653dbacd no need to fill up message-id header: it seems always filled 2021-10-18 17:34:11 +02:00
Son d18bb28ca9 add more log to investigate "Cannot parse Postfix queue ID" error 2021-10-15 10:37:22 +02:00
Son 72931aa9b7 fill up Bounce.info 2021-10-14 15:46:52 +02:00
Son 68cf54b2d9 Revert "use async in email handler"
This reverts commit 4d7cd09847.
2021-10-13 10:27:59 +02:00
Son 0ec4a3971c Revert "sleep for 60s when rate limit is hit for the first time"
This reverts commit 2524c8ab98.
2021-10-13 10:27:54 +02:00
Son becf789d5e Revert "add more logging"
This reverts commit 94a9a1479b.
2021-10-13 10:27:46 +02:00
Son 94a9a1479b add more logging 2021-10-13 10:18:46 +02:00
Son c132e3fbbc flake8 2021-10-12 15:03:16 +02:00
Son 2524c8ab98 sleep for 60s when rate limit is hit for the first time 2021-10-12 14:53:30 +02:00
Son 4d7cd09847 use async in email handler 2021-10-12 14:48:33 +02:00
Son eb0e327402 remove "with app.app_context():" 2021-10-12 14:47:01 +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 ee0ed7d9ec refactor: use headers.py 2021-10-11 12:21:14 +02:00
Son d6fc132df1 do not replace message-id in reply phase 2021-10-11 12:13:24 +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 Nguyen Kim 339d611e63 remove Contact.from_header column 2021-09-27 12:19:33 +02:00
Son Nguyen Kim 3ad961bfb9 ignore contact name that has hex ascii code \x00 2021-09-27 10:21:49 +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 7f5201effa handle ValueError raised by parse_full_address 2021-09-22 16:39:31 +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 16dd35470f add more debug info 2021-09-21 14:20:46 +02:00
Son Nguyen Kim ba3074b94a use warning instead of error 2021-09-20 16:59:27 +02:00
Son Nguyen Kim f6fd97ef05 log total number of email log for an alias when it is rate limited 2021-09-20 13:54:29 +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 7bb54e1e8e add "Custom/number_incoming_email" in newrelic 2021-09-20 09:48:06 +02:00
Son Nguyen Kim 144418ae47 use debug level when postfix queue id can't be parsed 2021-09-15 09:28:27 +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 f53e8c1af8 refactor 2021-09-10 17:48:36 +02:00
Son Nguyen Kim 61d9f7ee43 refactor 2021-09-10 17:31:29 +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 500ff00c7c use flanker to parse To:, CC: header in replace_header_when_forward() 2021-09-10 16:51:36 +02:00
Son Nguyen Kim 6e9dfdd6f1 if the complaint cannot be handled, forward it normally 2021-09-09 18:55:29 +02:00
Son Nguyen Kim 493a5daa45 use warning level 2021-09-08 18:25:40 +02:00
Son Nguyen Kim ff2cbeb3af handle case to header isn't present 2021-09-08 15:49:47 +02:00
Son Nguyen Kim a58cf9dd5e use warning level for log 2021-09-08 15:23:48 +02:00