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 |
|