Commit graph

2648 commits

Author SHA1 Message Date
Son
0f7ccec51a handle the AttributeError that can also be raised by as_bytes() 2022-04-21 11:28:11 +02:00
Adrià Casajús
c573ef655e
Store bounces in the reply phase to prevent abuse 2022-04-21 11:23:58 +02:00
Son
bddb5e500a able to handle several noreply addresses
This prepares the change of noreply@simplelogin.co to noreply@simplelogin.io
2022-04-21 08:59:46 +02:00
Adrià Casajús
af24876c71
Use sha3 and truncate to 8 bytes and store time in minutes starting at 2022-01-01 2022-04-20 20:46:35 +02:00
Son Nguyen Kim
9b624edf11
Merge pull request #901 from simple-login/no-dot-in-reverse-alias
use _ instead of . in reverse alias
2022-04-19 18:24:37 +02:00
Adrià Casajús
bad9202cf8
Calculate proper padding when decoding base32 2022-04-19 10:50:25 +02:00
Son Nguyen Kim
259851a04e
Merge pull request #860 from acasajus/remove-softfail
Generate secure transactional emails from address
2022-04-19 09:28:47 +02:00
Son
8dfdac79bf use _ instead of . in reverse alias
to avoid AC_FROM_MANY_DOTS SpamAssassin rule
2022-04-15 17:34:29 +02:00
Adrià Casajús
d28980a810
Format 2022-04-14 18:27:20 +02:00
Adrià Casajús
4bcc728222
Merge remote-tracking branch 'origin/master' into remove-softfail
* origin/master: (34 commits)
  fix flake8
  add link to the anti phishing page
  improve email wording
  Move tests
  Only send enum names
  Only send enum name for events intead of the full class.enum
  Also track login and register events from the api routes
  typo
  revert changes
  Added fix for parts that are not messages
  Add missing formatting place
  Revert unwanted changes
  Do not show an error if we receive an unsubscribe from a different address
  Revert changes to pgp_utils
  fix import
  Send newrelic events on login and register
  PR changes
  format
  Move dmarc management to its own file
  ignore VERPTransactional
  ...
2022-04-14 18:25:03 +02:00
Son
debed67c68 return whether a domain is custom or primary in GET /api/v5/alias/options 2022-04-14 17:28:40 +02:00
Son
a957cbb3c0 fix flake8 2022-04-14 09:47:58 +02:00
Son
1709de93ef add link to the anti phishing page 2022-04-14 09:28:26 +02:00
Son
95770de4d5 improve email wording 2022-04-14 09:23:49 +02:00
Adrià Casajús
ca93c8e603
Merge remote-tracking branch 'origin/master' into ac-dmarc-reply-phase
* origin/master:
  Only send enum name for events intead of the full class.enum
  Also track login and register events from the api routes
  typo
  revert changes
  Added fix for parts that are not messages
  Add missing formatting place
  Revert unwanted changes
  Do not show an error if we receive an unsubscribe from a different address
  Revert changes to pgp_utils
  Send newrelic events on login and register
2022-04-12 12:48:46 +02:00
Adrià Casajús
0f91effce9
Only send enum names 2022-04-12 09:34:05 +02:00
Adrià Casajús
9928525cf9
Only send enum name for events intead of the full class.enum 2022-04-12 09:04:57 +02:00
Son Nguyen Kim
7a0fd34823
Merge pull request #886 from simple-login/ac-fix-unauthorized-email
Do not assume all parts in multipart messages are processed as messages
2022-04-11 17:54:35 +02:00
Adrià Casajús
2b149747f5
Also track login and register events from the api routes 2022-04-11 16:11:01 +02:00
Adrià Casajús
8da4293305
typo 2022-04-11 16:04:28 +02:00
Adrià Casajús
c16fd25b2e
Added fix for parts that are not messages 2022-04-11 15:52:31 +02:00
Adrià Casajús
ae8824a356
Revert unwanted changes 2022-04-11 14:20:56 +02:00
Adrià Casajús
7649f6b822
Do not show an error if we receive an unsubscribe from a different address 2022-04-11 14:19:32 +02:00
Adrià Casajús
dc59b61fba
Revert changes to pgp_utils 2022-04-11 10:20:02 +02:00
Adrià Casajús
f333bb00c5
fix import 2022-04-11 10:19:25 +02:00
Adrià Casajús
60a070731e
Send newrelic events on login and register 2022-04-11 10:18:22 +02:00
Adrià Casajús
7fdd7d7f6a
PR changes 2022-04-11 09:28:57 +02:00
Adrià Casajús
0dbe504329
format 2022-04-08 14:23:59 +02:00
Adrià Casajús
8df6d98522
Merge remote-tracking branch 'origin/master' into ac-dmarc-reply-phase 2022-04-08 11:34:12 +02:00
Adrià Casajús
68e58c0876
Move dmarc management to its own file 2022-04-08 11:28:14 +02:00
Adrià Casajús
b128d64563
Moved spamd check to a custom file and cached the result 2022-04-07 19:17:37 +02:00
Adrià Casajús
0e3c46d944
Save original envelope for debugging 2022-04-06 17:31:46 +02:00
Adrià Casajús
8ca1be0166
Apply dmarc policy to the reply phase 2022-04-06 12:51:04 +02:00
Adrià Casajús
451e69a3c4
More rebase fixes 2022-03-30 16:09:17 +02:00
Adrià Casajús
dce9e633bf
fix 2022-03-30 16:02:05 +02:00
Adrià Casajús
db06ce0ae6
Create signed email addresses for VERP emails 2022-03-30 16:00:02 +02:00
Son
67c2c6afad add warning to email content when dmarc softfail 2022-03-30 19:48:07 +07:00
Son Nguyen Kim
110f2f2f2c
Merge pull request #861 from acasajus/spf-dmarc-backscatter
Reduce backscatter by checking return-path domain SPF status
2022-03-30 19:44:39 +07:00
Son Nguyen Kim
f7a98bc7d2
Merge pull request #862 from simple-login/ac/sanitize-next
Properly validate //host.com urls
2022-03-30 19:40:36 +07:00
Adrià Casajús
83fc8964a8
PR comments 2022-03-30 09:53:35 +02:00
Son Nguyen Kim
d561bae7dd
Merge pull request #864 from simple-login/ac/insecure-random
Replace using random with secrets for security purposes
2022-03-30 11:49:33 +07:00
Adrià Casajús
1555bc6346
fix test 2022-03-29 21:03:55 +02:00
Adrià Casajús
19e87a7156
More random to secrets 2022-03-29 18:42:28 +02:00
Adrià Casajús
b15facb6e4
Use secrets instead of random 2022-03-29 18:40:52 +02:00
Adrià Casajús
97ef5ff765
Fix oauth redirect when clientid is invalid 2022-03-29 18:37:01 +02:00
Adrià Casajús
a9e31cff26
Fix tests 2022-03-29 18:34:13 +02:00
Adrià Casajús
c5b0f5304e
Format 2022-03-29 18:18:11 +02:00
Adrià Casajús
d6df5e0ea0
Add limiters to auth routes 2022-03-29 18:14:13 +02:00
Adrià Casajús
e91fd26964
Sanitized missing places 2022-03-29 18:03:18 +02:00
Adrià Casajús
fe9161b101
Properly validate //host.com urls when redirecting after receiving a next param 2022-03-29 17:53:00 +02:00
Adrià Casajús
085c166cb2
Replace 5XX with 2XX for return path that fail SPF check 2022-03-29 15:09:10 +02:00
Adrià Casajús
7d36256b7c
Check return-path spf record before bouncing a message 2022-03-29 10:52:11 +02:00
Son
0d7d56c0ea send email when an email is put to quarantine 2022-03-25 18:02:17 +01:00
Son
63b1100a8b log event when there's no dmarc result 2022-03-25 16:19:11 +01:00
Son
ce2d2a3b3a fix case where header isn't string 2022-03-25 16:17:58 +01:00
Son
32fd65b69b add more log for alias transfer 2022-03-23 18:33:33 +01:00
Son Nguyen Kim
3d30870395
Merge pull request #849 from acasajus/new/parse-rpamd-headers
Return 200 on fishy dmarc result
2022-03-22 17:36:45 +01:00
Son Nguyen Kim
99b05034b0
Merge pull request #843 from acasajus/new/parse-rpamd-headers
Parse rspamd headers and apply dmarc policy if found.
2022-03-22 17:13:11 +01:00
Adrià Casajús
517bcb632e
MR changes 2022-03-22 17:02:59 +01:00
Son
5b3688b6df set a domain for message-id 2022-03-22 11:02:02 +01:00
Adrià Casajús
5f831d593a
CamelCase to snake_case 2022-03-21 17:59:43 +01:00
Adrià Casajús
45459d65be
PR comments 2022-03-21 17:43:26 +01:00
Son
f554375f23 decode, replace and encode for base64 encoding 2022-03-21 17:29:22 +01:00
Son
1952f368a8 require password to use the api key page 2022-03-21 14:40:47 +01:00
Son
9dc7cff87f add rate limiting for /auth/mfa 2022-03-21 14:23:35 +01:00
Son
a662ef4aee remove g.deduct_limit in api auth endpoint 2022-03-21 14:23:20 +01:00
Adrià Casajús
06a1363e92
Updated MR comments 2022-03-21 12:03:11 +01:00
Adrià Casajús
cdea0f5ee2
Rename header 2022-03-21 10:43:19 +01:00
Adrià Casajús
44dd06fabf
Added spoofed email test 2022-03-21 10:43:18 +01:00
Adrià Casajús
c9cbaeb460
format 2022-03-21 10:43:17 +01:00
Adrià Casajús
e8013f8e0c
Initial parse of rpamd extra headers 2022-03-21 10:43:17 +01:00
Son
0931642d11 use 10.0.0.0 network instead of 240.0.0.0 2022-03-20 10:38:58 +01:00
Son
fa2f83dbf4 fix and refactor 2022-03-16 10:24:59 +01:00
Son
7e0992b767 add mime version header for transactional email 2022-03-14 19:23:38 +01:00
Son Nguyen Kim
79154378f2
Merge pull request #836 from cquintana92/feature/allow-to-edit-manual-subscription
Allow to edit manual subscription
2022-03-14 18:07:07 +01:00
Carlos Quintana
ed58e811d1
Allow to edit manual subscription 2022-03-14 16:47:30 +01:00
Adrià Casajús
479a7420cb
Useful time format 2022-03-14 15:40:50 +01:00
Adrià Casajús
b463ba8f41
Added filter 2022-03-14 15:33:09 +01:00
Adrià Casajús
bf177ac5ba
Remove unused 2022-03-14 15:29:17 +01:00
Adrià Casajús
9b16143e59
Show nicer admin logs 2022-03-14 15:28:53 +01:00
Adrià Casajús
553d8976be
Added extend subscription log 2022-03-14 15:07:51 +01:00
Adrià Casajús
549c6ec7d3
Comment changes 2022-03-11 11:37:14 +01:00
Adrià Casajús
4368fd323f
Less changes 2022-03-10 18:13:33 +01:00
Adrià Casajús
d0860cd54d
Merge remote-tracking branch 'origin/master' into new/admin-audit-trail
* origin/master: (35 commits)
  reduce nb of commit
  show "more" only when a notification has a title. Show either title or message. Use bold font when a notification isn't read
  create a notification when an alias is disabled
  mark a notification as read when user arrives on the notification page
  Use plausible outbound link tracking
  add more log
  fix discover page
  fix
  fix "local variable 'alias_id' referenced before assignment"
  make sure to close session in monitoring
  use Date instead of date for header value
  lessen alias automatic disable check
  refactor
  return the block reason in should_disable()
  add adhoc upgrade on admin
  add extend subscription for 1 month to admin
  disable edition on admin
  comment out some admin pages
  fix migration
  fix duplicated stats
  ...
2022-03-10 18:10:13 +01:00
Adrià Casajús
733efc387c
Updated admin view 2022-03-10 17:49:30 +01:00
Adrià Casajús
98c942d84a
Added admin log view 2022-03-10 17:32:35 +01:00
Adrià Casajús
bc82bab1eb
Added alembic migration 2022-03-10 16:37:21 +01:00
Adrià Casajús
1d15af53b7
Add an audit log for the admin panel 2022-03-10 16:13:31 +01:00
Son
0e3a5c3d3c mark a notification as read when user arrives on the notification page 2022-03-09 17:58:26 +01:00
Son
6f80edfd64 fix discover page 2022-03-08 16:38:03 +01:00
Son
a64a70cbc8 use Date instead of date for header value 2022-03-07 15:57:29 +01:00
Son
350f498b94 lessen alias automatic disable check 2022-03-07 15:50:58 +01:00
Son
71136669e9 return the block reason in should_disable() 2022-03-07 15:44:27 +01:00
Son
f7ba3873d0 add adhoc upgrade on admin 2022-03-02 19:05:17 +01:00
Son
52a911f9d3 add extend subscription for 1 month to admin 2022-03-02 19:04:45 +01:00
Son
b2d8f5a017 disable edition on admin 2022-03-02 19:04:30 +01:00
Son
627b2e56d9 comment out some admin pages 2022-02-28 16:40:07 +01:00
Son Nguyen Kim
6a520e110c
Merge pull request #816 from simple-login/feature/include-sender-in-header
Feature/include sender in header
2022-02-28 09:24:18 +01:00
Son
205d8d7d3f add index for Alias custom_domain_id and directory_id columns 2022-02-26 17:51:50 +01:00
Son
4faf0d7636 optimize dashboard page: load custom domain using joinedload() instead of explicit join 2022-02-26 17:34:53 +01:00
Son Nguyen Kim
7df93c2ee5
Merge pull request #813 from cquintana92/feature/make-nameservers-configurable
Make nameservers configurable
2022-02-25 12:29:50 +01:00
Son
007aa56551 user can turn on/off the including sender in header option 2022-02-25 12:24:54 +01:00
Son
51598ada02 add User.include_header_email_header column 2022-02-25 12:24:54 +01:00
Carlos Quintana
e9dd73e99b
Replace env by os.environ.get 2022-02-25 11:19:49 +01:00
Adrià Casajús
01cc65bdca
Allow to have lower priority MX servers 2022-02-24 17:23:45 +01:00
Carlos Quintana
8f339923f8
Make nameservers configurable 2022-02-24 15:05:05 +01:00
Son
7da06ba424 return 422 if account not activated 2022-02-22 22:12:36 +01:00
Son Nguyen Kim
e9d134fe8f
Merge pull request #784 from FozzieHi/fix-testing-warnings
Fix deprecation warnings.
2022-02-21 17:12:36 +01:00
Son Nguyen Kim
e55c3a155b
Merge pull request #803 from acasajus/fix/sentry-APP-ZP
Only allow authenticated and enabled users to accept a OAuth post request
2022-02-21 17:11:53 +01:00
Adrià Casajús
4b13d5a28c
Fix test 2022-02-21 16:03:39 +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
Son Nguyen Kim
bfcd75bdea
Merge pull request #801 from acasajus/new/no-reply
Send support questions to the support ticket page
2022-02-21 15:07:27 +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
3e983e3557
Only allow authenticated and enabled users to accept a OAuth post request 2022-02-17 17:25:04 +01:00
Adrià Casajús
b0ac2f871a
Fixes 2022-02-17 13:21:40 +01:00
Adrià Casajús
398c1a55f1
Change SUPPORT_EMAIL to NOREPLY 2022-02-17 13:18:52 +01:00
Adrià Casajús
15ce7b00d8
Reply to noreply@... once per user 2022-02-16 18:38:31 +01:00
Carlos Quintana
2a751624a8
Default ALLOWED_REDIRECT_DOMAINS to URL if it's not set 2022-02-16 16:16:14 +01:00
Carlos Quintana
b4e291d4fd
Make NextUrlSanitizer a static class 2022-02-16 16:05:50 +01:00
Carlos Quintana
6be99bc576
Do not account for urlencoded redirects 2022-02-16 16:02:13 +01:00
Carlos Quintana
a44acf1846
Add support for allowed redirect domains 2022-02-16 09:38:55 +01:00
Carlos Quintana
39222cf868
Simplify conditional 2022-02-15 16:33:30 +01:00
Carlos Quintana
2f9489fe39
Only allow relative redirects 2022-02-15 15:16:31 +01:00
Son
728d935d65 add ZENDESK_ENABLED param 2022-02-14 18:08:32 +01:00
Son
c3cd1419f9 reformat code: put POST handling on top 2022-02-14 18:02:54 +01:00
Son
a0bb4e9ccc more verbose error 2022-02-14 18:02:30 +01:00
Son Nguyen Kim
69c8980c18
Merge pull request #792 from acasajus/new/zendesk-support
Create support tickets via zendesk
2022-02-14 17:53:30 +01:00
Adrià Casajús
416e7b363a
PR fixes 2022-02-14 15:58:36 +01:00
Adrià Casajús
305ce38379
PR changes 2022-02-14 11:19:03 +01:00
Adrià Casajús
700856053a
PR comment fixes 2022-02-11 13:32:31 +01:00
Adrià Casajús
8120128a51
Added Zendesk token 2022-02-10 12:59:48 +01:00
Adrià Casajús
639d4412e1
Updated comments from PR 2022-02-10 12:47:31 +01:00
Adrià Casajús
c9974d5321
Removed successful ticket created page and replaced with notification 2022-02-10 12:38:56 +01:00
Adrià Casajús
3fedc84c95
Add rate limit to ticket createion 2022-02-10 12:34:46 +01:00
Son Nguyen Kim
c18f9658b0
Merge pull request #787 from FozzieHi/test-config
Update testing suite and refactor.
2022-02-10 11:37:36 +01:00
Adrià Casajús
e844c9a392
Removed disabled page and redirected to the normal dashboard 2022-02-10 11:04:36 +01:00
Adrià Casajús
f59c5499fb
Formatting 2022-02-10 10:30:28 +01:00
Adrià Casajús
8aee883aae
Updated with more PR comments 2022-02-09 16:41:04 +01:00
Adrià Casajús
95fa95649d
Added comments from PR 2022-02-09 16:20:55 +01:00
Adrià Casajús
e57dcac2d2
Added zendesk submission flow 2022-02-09 12:00:48 +01:00
Adrià Casajús
219d5b998f
Add a suport form to create tickets in zendesk 2022-02-08 22:04:25 +01:00
Son
5b62f5a745 add rate limit to /auth/register 2022-02-07 18:45:41 +01:00
george
c415324932
Add flake8-bugbear 2022-02-06 20:37:43 +00:00
george
f7be992437
Update black, flake8 and pre-commit and use specific pre-commit versions. 2022-02-06 14:25:53 +00:00
Son
5da31f53b4 add MONITORING_EMAIL param 2022-02-04 15:43:40 +01:00
george
936d90a5f5
Fix deprecation warnings. 2022-02-04 13:49:38 +00:00
Son
4d1c4cfdff support pinned parameter in /api/v2/aliases 2022-02-03 11:16:49 +01:00
Son Nguyen Kim
543923b325
Merge pull request #760 from FozzieHi/delete-all-api-keys-button
Add a button to delete all API Keys
2022-02-02 18:31:05 +01:00
Son
049bd746ad refactor shell 2022-01-26 15:22:37 +01:00
Son
5a712f3877 make sure subdomain can only contain lowercase letters, numbers and dashes. 2022-01-26 14:53:27 +01:00
george
74713c2142
Rename method. 2022-01-25 18:32:34 +00:00
Son Nguyen Kim
89a800eed9
Merge pull request #753 from FozzieHi/totp-invalid-login-email
Invalid TOTP and recovery code email notifications
2022-01-24 18:35:52 +01:00
Son
fc3f06f4d8 create notification listing page 2022-01-24 16:45:36 +01:00
Son
90fa4abf69 create a notification for a bounce email 2022-01-24 16:10:36 +01:00
Son
1de6fefc59 add notification detail page 2022-01-24 15:22:01 +01:00
Son
5b7949f346 return title in /api/notifications 2022-01-24 15:20:59 +01:00
Son
3422f038eb add Notification title 2022-01-24 15:18:56 +01:00
george
65531b5c63
Add a button to delete all API Keys. 2022-01-23 18:38:54 +00:00
Son
e73288354d remove IGNORED_EMAILS variable 2022-01-21 19:30:27 +01:00
george
ab72927a16
Update text. 2022-01-20 18:24:28 +00:00
george
50122da0fe
Implement API notifications and use a function in email_utils 2022-01-20 17:42:11 +00:00
george
42407a0543
Send the email after the local error. 2022-01-20 16:44:15 +00:00
george
f7f91afc1e
Send a notification email for invalid recovery codes. 2022-01-20 16:41:42 +00:00
george
6d736aa915
Implement rate limiting with send_email_with_rate_control. 2022-01-20 15:05:18 +00:00
george
0eb2984b9c
Add invalid TOTP login email notifications. 2022-01-20 14:18:47 +00:00
Son
b929dc5462 check if alias is not none 2022-01-18 09:40:50 +01:00
Son
0806f9243e return custom domain json in patch 2022-01-16 17:26:11 +01:00
Son
841621dbe2 handle the case mailboxes is empty in try_auto_create_via_domain 2022-01-13 09:33:32 +01:00
Son
4cea47cc27 add setting for include_website_in_one_click_alias 2022-01-12 11:50:49 +01:00
Son
6cd8e45d21 return the default sender format (AT) in case user uses a non-supported sender format 2022-01-12 10:19:25 +01:00
Son
c0067b7657 add more log 2022-01-10 15:58:22 +01:00
Son
73d781cf6b handle non number alias_id 2022-01-10 10:44:41 +01:00
Son
9c696bd038 ignore VERPReply 2022-01-09 20:35:57 +01:00
Son
6cdf5637aa validate the alias address before creating 2022-01-09 20:22:41 +01:00
Son
a0727435eb use warning level 2022-01-09 20:13:41 +01:00
Son
c5e4dd6d16 save email for debug with error name as prefix 2022-01-08 16:58:23 +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
01ba5e8bf0 return 5** if CannotCreateContactForReverseAlias 2022-01-08 00:16:16 +01:00
Son
20b6ce29fc take into account authorized_address when checking email loop 2022-01-08 00:09:45 +01:00
Son
d4e31257fa make sure to output exception name in log 2022-01-07 16:45:12 +01:00
Son
fb87225d2d raise error when receiving emails sent from reverse alias 2022-01-07 16:14:21 +01:00
Son
d4e1aec875 refactor 2022-01-07 14:57:47 +01:00
Son
6b31b8926e fix comment 2022-01-07 14:27:53 +01:00
Son
1bdae7fbe8 handle CannotCreateContactForReverseAlias when user creates a new contact 2022-01-07 10:47:36 +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
84d1f22a7b add Contact.automatic_created column to know which contact is created during the forward phase 2022-01-07 10:21:31 +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
b2e4578953 add yield_per_query() helper 2022-01-06 18:50:54 +01:00
Son
d1b9fb8bb5 add type annotation for Session 2022-01-06 18:30:14 +01:00
Son
37bb7655d5 remove unused import 2022-01-06 15:30:33 +01:00
Son
9ff323c746 make sure to set custom_domain_id when creating a new alias 2022-01-06 15:29:37 +01:00
Son
b7e8324e5a move get_custom_domain() to alias_utils 2022-01-06 15:20:09 +01:00
Son
33bd7dbcd6 refactor 2022-01-06 14:57:01 +01:00
Son
de9f994fe2 check suffix in try_auto_create 2022-01-06 11:12:26 +01:00
Son
4976f48944 add /phone/provider2/sms 2022-01-05 18:14:51 +01:00
Son
b505ceebe9 add PHONE_PROVIDER_2_HEADER, PHONE_PROVIDER_2_SECRET config 2022-01-05 18:14:14 +01:00
Son
385dd1e755 handle out-of-office email in addition to bounce 2022-01-05 15:30:44 +01:00
Son
ffc621596a fix is_automatic_out_of_office: only use "Auto-Submitted" header 2022-01-05 15:21:54 +01:00
Son
6cb55e27f3 make sure alias that starts with bounce prefix can't be automatically created 2022-01-05 15:16:04 +01:00
Son
5e2ea81a6c do not consider out-of-office as bounce 2022-01-04 18:06:08 +01:00
Son
2ed7c5fcdb only return active number 2022-01-04 16:26:38 +01:00
Son
4ac8da1e8f poll messages on the phone reservation page 2022-01-04 16:24:50 +01:00
Son
4d8c89105f GET /api/phone/reservations/:reservation_id 2022-01-04 16:22:41 +01:00
Son
d51c32ad51 always return 200 for phone provider1 callback 2022-01-04 14:58:41 +01:00
Son
72bd998b9b fix logging 2022-01-04 14:58:24 +01:00
Son
bc2f9ad45f add PhoneNumber.comment column 2022-01-04 14:54:55 +01:00
Son
127f8daad7 add /phone/provider1/sms 2022-01-04 14:53:22 +01:00
Son
3484f71dac add PHONE_PROVIDER_1_HEADER and PHONE_PROVIDER_1_SECRET config 2022-01-04 14:52:56 +01:00
Son
a4b113b7fa remove DISPOSABLE_FILE_PATH 2022-01-04 09:40:10 +01:00
Son
d38fa95eed make sure number of minutes is specified 2022-01-04 09:35:34 +01:00
Son
325207d6ba Use InvalidMailboxDomain instead of DISPOSABLE_EMAIL_DOMAINS 2022-01-03 10:33:21 +01:00
Son
4332fd3244 Create InvalidMailboxDomain model 2022-01-03 10:31:33 +01:00
Son
85fb859dcb show error when a domain can't be used as random alias default domain 2022-01-03 10:05:06 +01:00
Son
34118f459a ignore smtp error in send_trial_end_soon_email() 2022-01-03 09:59:52 +01:00
Son
558200113c remove unnecessary code in send_email() 2022-01-01 11:47:45 +01:00
Son
01a8a0343e log when an alias is deleted 2021-12-31 11:18:08 +01:00
Son
61226545c2 handle the 2 consecutive dots in alias 2021-12-31 11:15:24 +01:00
Son
9ee449722a new domain has ownership verified if its root has the ownership verified 2021-12-31 11:10:36 +01:00
Son
a6f5b755aa set apple_sub.product_id 2021-12-30 16:20:31 +01:00
Son
e1d82b7e0d Add AppleSubscription.product_id col 2021-12-30 16:20:18 +01:00
Son
30ba566457 take into account _MACAPP_MONTHLY_PRODUCT_ID in verify_receipt 2021-12-30 16:15:33 +01:00
Son
22cf8cfe38 send Custom/smtp_connection_time to newrelic 2021-12-30 14:17:46 +01:00
Son
2cd50c582a remove NEWRELIC_CONFIG_PATH 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
a64968f6e5 consider utf-8 email encoding as no encoding 2021-12-30 11:36:52 +01:00
Son
b3469ba9d4 log how much time to get a smtp connection 2021-12-30 11:28:50 +01:00
Son
c14a7b4f7a use with ... for smtp 2021-12-29 17:09:24 +01:00
Son
f439e39580 cache smtp server and remove POSTFIX_PORT_FORWARD 2021-12-29 16:26:37 +01:00
Son
733a9c42b0 delete activation code before sending email to avoid any delay 2021-12-29 10:26:42 +01:00
Son
80b0af91e5 allow user to create alias with domain that has ownership verified (and might not have MX verified) 2021-12-29 10:24:22 +01:00
Son
b9e2a79933 enable email sending retry in cron job 2021-12-28 16:42:01 +01:00
Son
a270c72d60 add random_alias_suffix to settings api 2021-12-28 15:24:58 +01:00
Son
229dc7fd44 fix test 2021-12-28 15:09:33 +01:00
Son
83be94b43e user can create aliases for domains that don't have mx verified 2021-12-28 12:01:32 +01:00
Son
fc42db43ca add new sender formats: NAME_ONLY, AT_ONLY, NO_NAME 2021-12-28 10:49:37 +01:00
Son
24a392818b sl_sendmail tries by default 2 times before giving up: replace can_retry by retries 2021-12-27 17:03:44 +01:00
Son
2cf1c4143a reduce sleep time between sl_sendmail failure 2021-12-27 17:00:11 +01:00
Son
a6569d47dd do not put price in plan_name to take into account discount 2021-12-26 22:04:45 +01:00
Son
584772f798 fix upgrade_channel 2021-12-23 19:28:57 +01:00
Son
879b364a47 return 421 to retry when SMTPRecipientsRefused error 2021-12-23 18:17:29 +01:00
Son
544df7034d do not retry sending email in send_email() 2021-12-16 21:31:01 +01:00
Son
75d6b1dab5 add more logging 2021-12-16 15:09:15 +01:00
Son
64c6ef2cbe retry when SMTPRecipientsRefused too 2021-12-16 15:06:26 +01:00
Son
a142a430d2 use sl_sendmail instead of smtp.sendmail 2021-12-16 10:32:10 +01:00
Son
eec2880c41 fix case signed_suffix is None 2021-12-15 17:12:27 +01:00
Son
79ca39a625 use regex_match instead of re.fullmatch() 2021-12-14 15:00:32 +01:00
Son
5e7730c35c refactor: move regex_match() to its own file 2021-12-14 15:00:32 +01:00
Son
f3e8fc10a9 use re instead of re2 if error "Argument 'pattern' has incorrect type (expected bytes, got PythonRePattern)" 2021-12-11 19:38:22 +01:00
Son
a021bba811 fix toggle contact should only be used by authenticated user 2021-12-06 18:39:12 +01:00
Son
c6a2af3c3c remove unused admin column 2021-12-06 18:04:23 +01:00
Son
3e2c120a73 phone reservation page
- add twilio lib
- create phone listing, reservation page
- add twilio callback to receive messages
2021-12-02 17:03:13 +01:00
Son
7109dc7120 add models for phone: Country, Number, Reservation, Message 2021-12-02 16:50:26 +01:00
Son
daca70f2b4 add TWILIO_AUTH_TOKEN config 2021-12-02 16:30:30 +01:00
Son
226ce9333c return error if invalid alias address 2021-12-02 16:17:41 +01:00
Son
e1123961cf check if user has lifetime license on pricing page 2021-12-01 17:41:20 +01:00
Son
4d388a202c allow user with manual or coinbase subscription to switch to paddle 2021-12-01 17:16:01 +01:00
Son
c6f49821c7 remove unused import 2021-12-01 10:39:08 +01:00
Son
34509cbbb3 delete account is protected by password 2021-12-01 10:11:18 +01:00
Son
4ffa5c9345 display expires date 2021-11-30 10:33:31 +01:00
Son
94a90665ea black format 2021-11-29 16:46:03 +01:00
Son
21bd4ed97e display all user payment channels on admin 2021-11-29 16:26:41 +01:00
Son
c29b5100fb delete User.subscription_cancelled 2021-11-29 16:17:24 +01:00
Son
325a1a9524 remove unused User.premium_end 2021-11-29 11:35:28 +01:00
Son
5f47d172e0 move fake_data() to dedicated fiel 2021-11-28 11:51:31 +01:00
Son
c356c75494 show coupon expires date when user buys a coupon 2021-11-26 18:20:46 +01:00
Son
4d0f6811b2 error if coupon is expired 2021-11-26 18:11:03 +01:00
Son
06d459ba99 Add coupon.expires_date column 2021-11-26 18:10:23 +01:00
Son
6d1b6720cf set content_type for plain text message 2021-11-25 10:34:59 +01:00
Son
dd6e265aa0 add RSPAMD_SIGN_DKIM and add "X-SimpleLogin-Want-Signing" header 2021-11-25 10:34:42 +01:00
Son
4c33b63f97 better way to know whether this is the last page 2021-11-23 14:44:48 +01:00
Son
cd553608a5 fix 2021-11-23 14:35:37 +01:00
Son
f049da8c9a Compare mx domains with priority order and not priority value 2021-11-23 14:31:53 +01:00
Son
eeb24f594a Add OLD_UNSUBSCRIBER and support it 2021-11-22 18:17:07 +01:00
Son
55ae61527d user can buy 1-year coupon 2021-11-22 16:30:27 +01:00
Son
2d9f8e83e6 add PADDLE_COUPON_ID to config 2021-11-22 16:28:49 +01:00
Son
b5c2d9ee2a fix custom domain not correctly set on /v2/alias/custom/new and /v3/alias/custom/new 2021-11-22 16:20:50 +01:00
Son
3add9e6db8 make sure to delete Fido when disabling Fido on a user 2021-11-22 15:58:11 +01:00
Son
bd8b9526f6 set Fido.user_id 2021-11-22 15:57:51 +01:00
Son
e4f2e1f5a8 add Fido.user_id column 2021-11-22 15:57:38 +01:00
Son
63e1baf46a can disable both OTP and FIDO 2021-11-22 11:32:14 +01:00
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