Commit Graph

249 Commits

Author SHA1 Message Date
Sam 852860de66 FEATURE: simpler and friendlier unsubscribe workflow
- All unsubscribes go to the exact same page
- You may unsubscribe from watching a category on that page
- You no longer need to be logged in to unsubscribe from a topic
- Simplified footer on emails
2016-06-17 11:28:49 +10:00
James Cook c0e25b5a9a Replace certain uses of 'gsub' with 'tr' or 'chomp' for a speed
improvement
2016-06-10 22:08:37 -05:00
Arpit Jalan 40e9e1be66 FEATURE: user-friendly custom message 2016-06-08 18:23:22 +05:30
Arpit Jalan 4253141700 FEATURE: custom email message for topic invites 2016-06-07 23:43:15 +05:30
Arpit Jalan 7b205ebba4 FEATURE: customize invite email message 2016-06-06 20:15:30 +05:30
Régis Hanol 99ad251731 different email footer when mailing_list_mode is enabled 2016-06-03 15:48:54 +02:00
James Kiesel feffe23cc5 FEATURE: More granular mailing list mode (#4068)
* Rearrange frontend to account for mailing list mode

* Allow update of user preference for mailing list frequency

* Add mailing list frequency estimate

* Simplify frequency estimate; disable activity summary for mailing list mode

* Remove combined updates

* Add specs for enqueue mailing list mode job

* Write mailing list method for mailer

* Fix linting error

* Account for stale topics

* Add translations for default mailing list setting

* One query for mailing list topics

* Fix failing spec

* WIP

* Flesh out html template

* First pass at text-based mailing list summary

* Add user avatar

* Properly format posts for mailing list

* Move make_all_links_absolute into Email::Styles

* Apply first_seen_at to user

* Send mailing list email summary hourly based on first_seen_at

* Branch and test cleanup

* Use existing mailing list mode estimate

* Fix failing specs
2016-05-21 15:17:54 +02:00
Arpit Jalan 51d194cc21 FIX: show invited by username when inviting to topic 2016-04-13 11:38:29 +05:30
Régis Hanol a359a973e2 remove useless content when sending email to a staged used 2016-04-11 19:06:10 +02:00
Arpit Jalan 17afdc34cc UX: user invite email style should be consistent with other user notifications 2016-03-25 19:28:55 +05:30
Sam c095304d6d FEATURE: limit daily emails per user to 100 per day via site setting
- controlled via max_emails_per_day_per_user, 0 to disable
- when limit is reached user is warned
2016-03-23 15:08:48 +11:00
Robin Ward 5771d2aee2 SECURITY: Support for confirm old as well as new email accounts 2016-03-08 14:52:22 -05:00
scossar 2d8b10d139 validate user locale 2016-03-04 13:21:30 -08:00
scossar a20a52b25f add user locale 2016-03-03 17:21:50 -08:00
Régis Hanol 21b51090bf FIX: don't tell staged users they can visit topics in email notifications 2016-02-26 23:56:56 +01:00
Sam Saffron 820a435af8 FEATURE: add "email in-reply-to user option"
We no longer include previous replies as "context", instead
we include and excerpt of the post being replied to at the bottom
of notifications, this information was previously missing.

Users may opt in to emailing previous replies if they wish
or opt out of "in-reply-to" which makes sense in some email clients that
are smarter about displaying a tree of replies.
2016-02-26 00:05:59 +11:00
Régis Hanol 8d1da9cedd FEATURE: keep original title when sending email notifications about a PM 2016-02-23 01:34:16 +01:00
Régis Hanol 780c3ad755 Merge pull request #4008 from joebuhlig/master
Add tertiary color to email digests
2016-02-22 14:43:21 +01:00
Joe Buhlig 6763a9923a Added tertiary color to digest
Added hash to color in helper

Added anchor_color to topic and site name links

Styled the unsubscribe link
2016-02-22 07:02:21 -06:00
Sam ab06f86fbe FEATURE: allow users to control how many previous replies they get
- always means we always send previous replies with every email
- never means we do not
- "unless previously sent" ... is the default, in which we only email you each reply once

The default_email_previous_replies site setting can control this toggle
2016-02-19 13:57:07 +11:00
Sam 3829c78526 PERF: shift most user options out of the user table
As it stands we load up user records quite frequently on the topic pages,
this in turn pulls all the columns for the users being selected, just to
discard them after they are loaded

New structure keeps all options in a discrete table, this is better organised
and allows us to easily add more column without worrying about bloating the
user table
2016-02-17 18:08:25 +11:00
Régis Hanol 63b9d1c645 FIX: sends an email notifcation when a user's post is linked 2016-02-16 18:29:23 +01:00
Régis Hanol c740b42328 FIX: whitelist post_types used in context in email notifications 2016-02-12 12:10:30 +01:00
Régis Hanol 86819f08c3 FIX: use RFC-compliant previous replies separator 2016-02-11 18:48:09 +01:00
Régis Hanol 7d992cb4c5 FIX: sending emails to mailing list subscribers wasn't working 2016-02-03 19:27:58 +01:00
Régis Hanol 378b7f964c Revert "FEATURE (WIP): add max-width and center email notifications" 2016-01-29 11:13:59 +01:00
Arpit Jalan 26bba1f481 UX: preserve localization in digest email 2016-01-28 23:38:07 +05:30
Arpit Jalan 90d41a994a universal date format in digest email 2016-01-28 23:15:32 +05:30
scossar 3f09ec2aca add layout for notifications 2016-01-27 11:27:32 -08:00
Sam 1bb485fca5 FIX: when a user got multiple replies to a topic, emails were missing 2016-01-27 12:20:08 +11:00
James Kiesel c7283751a3 Unsubscribe via email 2016-01-20 22:25:25 +13:00
Régis Hanol 3083657358 FEATURE: better email in support
FEATURE: new incoming_email model
FEATURE: infinite scrolling in emails admin
FEATURE: new 'emails:import' rake task
2016-01-19 00:57:55 +01:00
Jeff Wong bffdc5907a username as from in emails
Add a site setting to display name in from header for emails
2015-12-15 00:34:04 -08:00
Régis Hanol 1d70434de5 use light email template for staged users 2015-12-09 19:45:46 +01:00
Sam 1f7c03df5c FIX: missing email notifications for group mentions 2015-12-01 12:12:55 +11:00
Sam ad3dd161e7 FEATURE: first class group mentions built in
If you allow a group to be mentioned it can be mentioned with the @ symbol.

Keep in mind as a safety mechanism max_users_notified_per_group_mention is set to 100
2015-11-30 17:08:43 +11:00
Robin Ward 5e93140f85 FEATURE: Can override any translation via an admin interface 2015-11-27 11:35:19 -05:00
Régis Hanol 0d54c18c8b new hidden 'allow_staged_accounts' setting 2015-11-26 18:31:23 +01:00
Gerhard Schlager 4686383512 UX: Use localized date format in digest email 2015-11-13 21:45:52 +01:00
Arpit Jalan 734c272de8 UX: universal date format in digest email 2015-10-28 22:18:23 +05:30
Robin Ward 7bd51e7882 FIX: Don't incldue whispers in context emails 2015-09-30 12:39:56 -04:00
Gerhard Schlager 3dd9dbf757 Remove hard-coded fallback to English locale
In production mode the English locale is always used as fallback.
In development mode there is currently no fallback, so the English
locale isn't loaded and the second call to I18n.l() fails too.
2015-09-06 21:24:38 +02:00
Régis Hanol 6669a2d94d FEATURE: per-topic unsubscribe option in emails 2015-08-12 23:00:16 +02:00
Neil Lalonde 77595bcaa9 FEATURE: notify by email when there are posts from new users waiting to be reviewed 2015-06-18 15:47:35 -04:00
Arpit Jalan 5180d3e355 FEATURE: include email_prefix in digest email subject instead of site title 2015-06-03 22:22:29 +05:30
Neil Lalonde f18140b81f FIX: digest emails weren't using user's last emailed and last seen times 2015-06-03 12:16:39 -04:00
Sam 739a6ff721 FIX: show category in subject not checking for category 2015-06-01 15:43:16 +10:00
Robin Ward d0741f752f FIX: If a date translation is missing, don't raise an exception 2015-05-26 11:59:47 -04:00
Régis Hanol 52c19d74f8 FIX: error when user name was nil 2015-05-06 23:56:34 +02:00
Sam c6fe90006e correcly grap name, omit needless query 2015-05-06 12:55:33 +10:00
Arpit Jalan d9ec6888e1 FIX: allow site_name to be present in rejection email subject 2015-05-04 11:22:54 +05:30
Arpit Jalan 2932284293 FEATURE: magic login route for admin when SSO is enabled 2015-04-27 22:54:48 +05:30
Arpit Jalan d5db44da87 FIX: include topic excerpt in topic/message invite mail for existing user 2015-04-07 12:02:04 +05:30
Arpit Jalan 8c2d7dcaac FEATURE: invite existing user to a topic 2015-04-03 15:00:04 +05:30
Arpit Jalan 6e5540c107 FIX: do not show name in email if name on posts are disabled 2015-02-18 01:39:41 +05:30
Robin Ward 3ce2077aa8 Migrate unsubscribe keys to the database.
This should reduce a lot of the keys in redis.
2015-02-13 14:24:15 -05:00
Arpit Jalan 9d5baf12ff FIX: set base_url for usage_tips 2015-02-10 23:04:00 +05:30
Arpit Jalan c90251ea25 FIX: check for full name in invite email subject 2015-02-05 22:35:25 +05:30
Robin Ward d6fa248093 UX: Update 404 page category badge to use centralized helper and style 2015-01-28 14:56:38 -05:00
Arpit Jalan 7771d2fb31 remove enable_email_names setting 2015-01-13 13:35:40 +05:30
Arpit Jalan f84bdfdde3 FIX: if full user name is not provided, username should be present in email From header 2014-12-03 13:12:05 +05:30
Robin Ward 0777efe74d FIX: 1000 was a crazy threshold for showing categories at the bottom of
digests
2014-11-07 17:16:52 -05:00
Régis Hanol fd5677808c SPEC: make sure digest doesn't pick any topics in categories that are muted 2014-11-03 16:57:50 +01:00
Arpit Jalan 8700716fcd separate site setting for showing full name in emails 2014-10-22 00:50:39 +05:30
Arpit Jalan 83068fab94 FEATURE: show full name in emails 2014-10-21 23:34:44 +05:30
Arpit Jalan 861f321263 FEATURE: send set password instructions after invite redemption 2014-10-11 14:13:05 +05:30
Neil Lalonde 96e4d2b662 remove the notification_email_top customization 2014-10-06 17:00:20 -04:00
Arpit Jalan 0ae0552543 FEATURE: show topic category in email subject 2014-10-03 22:08:59 +05:30
Arpit Jalan 330b7ba54a FEATURE: add site preference for standard subjects, including support for Re 2014-09-29 21:54:29 +05:30
Robin Ward bc53d48bd7 Renaming site contents to site text 2014-09-24 16:08:14 -04:00
Régis Hanol 7bc223ef7c FEATURE: improve flags reminder email 2014-09-23 18:37:31 +02:00
Neil Lalonde 0a9e284277 FIX: rake admin:invite sends an email that makes it clear that an account was created for the recipient 2014-09-11 12:49:01 -04:00
Eyal Levin e0c2f3df3a Enable RTL direction in emails. 2014-08-27 14:38:03 +03:00
Robin Ward 6783565d8f Revert "Enable RTL direction in emails." 2014-08-06 15:30:07 -04:00
Eyal Levin f8c99a35d0 Enable RTL direction in emails. 2014-08-06 15:27:15 +03:00
riking d87edce6c3 Pass rejection message along in rejection mail if present 2014-08-01 09:56:15 -07:00
riking c8d322d1be Include the email subject line in rejection messages
This change has a tradeoff.
It increases our backscatter vulnerability - the subject could have spammy content - but it's extremely valuable to the user to know exactly which message was rejected.
If you sent two at the same time, and only one was rejected, you would have no way of knowing which worked and which to resend without going to the website (which is what email-in is trying to avoid, kinda).
2014-07-17 10:25:53 -07:00
Robin Ward ede8f22971 Use the header background color for a site in the digest email. 2014-07-17 12:31:37 -04:00
Arpit Jalan 2f6c984c8c Improve invite email copy 2014-07-10 10:57:40 +05:30
Arpit Jalan 8395da5bd0 FIX: include topic title and domain name in topic invite mail 2014-07-10 10:05:28 +05:30
Arpit Jalan 223bbc3da3 FEATURE: include topic context in topic invite 2014-07-09 21:23:20 +05:30
riking da9048f3ea Fix email code & tests 2014-06-27 12:04:31 -07:00
riking 420d3d651b Make sure from is present 2014-06-23 17:51:22 -07:00
riking d2823fc5ee More detailed email rejection responses 2014-06-23 17:17:53 -07:00
riking edc17dddb3 Let's see if this works 2014-06-23 17:17:53 -07:00
riking a7a28454a1 DEBUG: Send all email processing errors to admins 2014-06-20 09:31:19 -07:00
Sam Saffron 92d2912ff2 Revert "Bugfix: Mailing list mode disables PM emails"
This reverts commit 6a2dde6417.
2014-06-16 16:36:02 +10:00
Sam 1542854a93 Merge pull request #2420 from peternlewis/mailing_list_mode_disables_private_message_emails
Bugfix: Mailing list mode disables PM emails
2014-06-16 16:32:05 +10:00
Jeff Atwood 1b3180f916 better copy for site and topic invites 2014-06-14 15:49:19 -07:00
Robin Ward 4a2d6bd5da Merge pull request #2439 from peternlewis/mailing_list_mode_disables_private_message_emails2
Bugfix: Mailing list mode disables PM emails (take 2)
2014-06-13 14:46:38 -04:00
Peter N Lewis f9830fb480 Bugfix: Mailing list mode disables PM emails (take 2)
Mailing List Mode disables normal emails, but mailing list mode does not email private_messages.

To avoid this, mailing list mode should only disable emails if they are not private_messages.

There are no tests for this commit as UserNotifications does not appear to be instantiated in the spec suite.
2014-06-12 20:25:20 +08:00
Peter N Lewis 0af1242aa8 Use an appropriate name in the Reply-To header
Use "Site Name <>" for the Reply-To header when the reply is to the site or a public topic.

Use "username <>" for the Reply-To header only when the reply is to a private message topic.
2014-06-06 21:09:00 +08:00
Peter N Lewis 6a2dde6417 Bugfix: Mailing list mode disables PM emails
Emailing a PM uses the user_posted event/format, but Mailing List Mode disables emails with this format.

We work around this by temporarily using "postedprivate", and then reverting back to "posted" efter the Mailing List Mode check.
2014-06-06 15:04:33 +08:00
Neil Lalonde 00390ee739 Add a way to show a custom message at the top of all notification emails. Customize it at /admin/site_contents/notification_email_top 2014-05-12 16:52:06 -04:00
Neil Lalonde f44bd4ec28 Don't allow sending private messages to suspended users. Emails to suspended users should tell them how to respond, since they can't. 2014-05-06 15:01:27 -04:00
Robin Ward 4eb5474858 Add a SiteSetting to configure how many topics are in the email digest. 2014-04-21 17:49:10 -04:00
Robin Ward 64faee0935 Break down new topic counts by category if a digest contains many. 2014-04-17 16:42:40 -04:00
Robin Ward 0e56157212 Basic "Also, there are x new topics" text for the digest 2014-04-17 16:04:26 -04:00
Robin Ward fd4007eefc FIX: Don't sort the new topics by score since the Top logic is already
sorting them by score.
2014-04-17 15:43:24 -04:00
Neil Lalonde ecf211aa3f Send email to contact_email if there are flags submitted more than 48 hours ago. Configurable with the notify_about_flags_after site setting. 2014-04-03 14:34:40 -04:00
Sam adb6541635 FEATURE: mailing list mode always available 2014-03-05 14:21:53 +11:00
Benjamin Kampmann 024597e643 Switch to proper exception handling system for better user feedback
- Replace implicit return code-system in Email::Receiver with proper exception system
 - Update tests to check for exceptions instead
 - Test the PollMailbox for expected failures
 - Add proper email-handling of problematic emails
"
2014-02-28 17:02:58 +01:00
Allen Hancock dad43b9853 Optionally allow discourse to create new topics from email. 2014-02-28 16:53:58 +01:00
Sam 9ec52d9425 BUGFIX: mailing list mode broke regular email 2014-02-12 16:51:26 +11:00
Sam 227873df78 FEATURE: proper mailing list mode
once enable_mailing_list_mode is enabled any user can elect
to get every post via email unless they opt out of category or topic
2014-02-07 11:07:52 +11:00
Sam 5267e5bea6 BUGFIX: emails sent from "2 replies" as opposed to correct user 2014-02-04 12:56:28 +11:00
Sam 51c06dea03 BUGFIX: hidden posts not absent from context 2014-01-31 16:37:40 +11:00
Neil Lalonde ba74226346 FIX: invited users get clearer messaging when setting a password for the first time 2014-01-21 12:42:26 -05:00
Sam 4bea4cbcaa BUGFIX: add [PM] string to private message emails 2014-01-21 17:24:05 +11:00
Neil Lalonde df220ae973 Get detailed info about new versions from the Discourse Hub. Include version notes from the latest version in notification email. 2013-12-31 15:52:35 -05:00
Sam db1d01d1a2 Discourse as a Mailing List improvements
FEATURE: context is not emailed if we previously emailed you the post
FEATURE: site setting to enable_watch_new_topics , false by default.
  When enables users can elect to watch everything by default
FIX: Custom email subjects (x quoted you in [title], x replied to [title])
  was removed, this broke email grouping. TBD, include info in footer somehow
FIX: topic user specs were messy, reduce side effects
2013-12-30 13:02:12 +11:00
Robin Ward 8b4c030c16 Small email fixes 2013-12-03 10:11:04 -05:00
Robin Ward 781a8876d3 Show post count in digest emails. Sort by score 2013-11-29 13:00:25 -05:00
Robin Ward de30af9302 Support for inviting to a forum from a user's invite page. 2013-11-06 12:56:50 -05:00
Sam 00951e0578 remove "via sitename" from senders 2013-09-12 15:38:18 +10:00
Neil Lalonde baff59d752 Send email to contact_email when a new version of Discourse is found. Disable with the new_version_emails setting. 2013-08-16 17:28:36 -04:00
Robin Ward 652169daf6 Include a list of more new topics in the digest emails at the bottom 2013-08-09 14:43:02 -04:00
Robin Ward 8e1fae0459 Add `Discourse.Singleton` class mixin for creating singletons. 2013-08-08 12:00:58 -04:00
Robin Ward 9564a6ce09 Don't include `user_deleted` posts in emails. 2013-08-08 10:32:51 -04:00
Robin Ward fe3a69c271 Private message emails now include the history 2013-08-07 13:03:45 -04:00
Sam d51dcd1705 improve email styling, include extra respond link 2013-07-26 17:27:46 +10:00
Sam 366cb13140 restyle all user notification emails to use a custom html template 2013-07-24 17:24:55 +10:00
Robin Ward 3e7b418ea8 First Try: Include Post History (context) in Notification Emails 2013-07-22 15:06:37 -04:00
Robin Ward 3067c2ed3b Private messages have instructions for reply by email. We also strip X-Discourse headers
before sending the message as they are no longer needed.
2013-06-25 11:35:26 -04:00
Robin Ward 3fc69337d3 Enable reply by email for all users, display a message in the footer indicating so. 2013-06-25 11:27:17 -04:00
Robin Ward 87024c8676 Allow reply by email for admins in PMs 2013-06-18 17:26:33 -04:00
Robin Ward 8af9952b25 Change all headers to X-Discourse-* instead of Discourse-* 2013-06-18 15:54:02 -04:00
Robin Ward 8acdc18bc8 First stab at polling support for POP3S / reply by email 2013-06-17 16:49:02 -04:00
Robin Ward 49c09898e2 The EmailBuilder now creates the Reply by Email Key if necessary. 2013-06-13 12:40:06 -04:00
Robin Ward cf9b6beb13 Add specs for all user notifications, including whether they support
reply by email.
2013-06-13 12:40:01 -04:00
Robin Ward e29f4a3496 Work in Progress: Reply By Email:
- Add support classes and settings to enable reply by email
- Split out Email builder to be more OO, add many specs
2013-06-13 12:39:56 -04:00
Robin Ward 93bbe190c0 Moved Email components into a module 2013-06-10 15:34:10 -04:00
Neil Lalonde 34e1f376f6 Add [PM] to subject of email notifications for private messages 2013-06-07 15:50:11 -04:00
Chris Hunt f6ce985121 Send activation email after user approved 2013-06-06 18:37:25 -07:00
Robin Ward 0b97ea6345 Better HTML emails, smarter email digests, new email section in admin with digest preview 2013-06-05 17:47:25 -04:00
Sam b82e408351 add list unsubscribe 2013-04-26 16:56:28 +10:00
Sam 08af09cd7d don't pass notification email into to the default cause it freezes in a potentially incorrect value 2013-04-02 13:29:34 +11:00
Karan Misra 5dfb04e4b3 Convert a lot of :a => b to a: b and bring peace to the world 2013-03-25 05:07:36 +05:30
Kuba Brecka 4424328bff remove unnecessary .gitkeep files 2013-03-23 10:45:40 +01:00
Kuba Brecka cf5deaba6c 2nd try: localize date formats on server side 2013-03-12 19:30:56 +01:00
Robin Ward 030857ac8c Give a pretty "from" address to the digest emails 2013-03-05 16:53:49 -05:00
Régis Hanol 239cbd2d58 enforce coding convention
replaced every `and` by `&&` and every `or` by `||`
2013-03-05 01:42:44 +01:00
Robin Ward 72cbb948b8 Fixes broken "From" header in Private Message emails. 2013-03-01 14:56:52 -05:00
Gosha Arinich 0c99dea153 introduce Enum 2013-03-01 21:16:36 +03:00
Robin Ward a086635add Swap out "@" for "via" in email From field 2013-02-27 19:03:57 -05:00
Robin Ward 421f048458 Add a better from address to the email 2013-02-27 18:30:14 -05:00
Robin Ward 7c1ae451fe Send emails to users who are watching topics 2013-02-27 15:38:44 -05:00
Jakub Arnold 61654ab8f0 Fix all the trailing whitespace 2013-02-07 16:45:24 +01:00
Robin Ward 21b5628528 Initial release of Discourse 2013-02-05 14:16:51 -05:00