Commit Graph

282 Commits

Author SHA1 Message Date
Neil Lalonde 5be7a2dad4 FIX: invalid html in notification emails when template has been customized 2017-05-10 14:01:26 -04:00
Guo Xiang Tan 71a266b673 Remove daily mailing mode option as it doesn't scale.
https://meta.discourse.org/t/daily-updates-option-for-mailing-list-mode/45029/14?u=tgxworld
2017-05-05 12:21:50 +08:00
Guo Xiang Tan 982e3d04f6 PERF: Allow memory to be freed instead of fetching all the objects into memory at once.
```
MemoryProfiler.report do
  Jobs::UserEmail.new.execute(type: :mailing_list, user_id: user.id)
end.pretty_print
```

Before:
```
Total allocated: 180096119 bytes (1962025 objects)
Total retained:  2194 bytes (16 objects)

allocated memory by gem
-----------------------------------
  66979096  activerecord-4.2.8
  43507184  nokogiri-1.7.1
  43365188  mail-2.6.4
   5960201  activesupport-4.2.8
   5056267  discourse/lib
   4835284  rack-mini-profiler-0.10.1
   3825817  arel-6.0.4
   2186088  i18n-0.8.1
   1719330  discourse/app
```

After:
```
Total allocated: 161935975 bytes (1473940 objects)
Total retained:  2234 bytes (17 objects)

allocated memory by gem
-----------------------------------
  45430264  activerecord-4.2.8
  43568627  nokogiri-1.7.1
  43430754  mail-2.6.4
  11233878  rack-mini-profiler-0.10.1
   5260825  activesupport-4.2.8
   5054491  discourse/lib
   2186088  i18n-0.8.1
   1822494  arel-6.0.4
```
2017-05-03 17:01:57 +08:00
Neil Lalonde b193ae2d15 FIX: missing link in unsubscribe text of summary emails 2017-04-28 10:37:52 -04:00
Robin Ward a545117d2e FIX: Forgot to clear out a topic excerpt 2017-04-27 11:49:39 -04:00
Robin Ward 2efe0442bf FIX: Messed up i18n key 2017-04-27 11:45:59 -04:00
Robin Ward bf9c4a7828 FEATURE: secure_email site setting to prevent data going out in email 2017-04-26 13:05:56 -04:00
Neil Lalonde 2916b45666 multiplier should not have been changed 2017-04-12 14:48:30 -04:00
Neil Lalonde 3957540dd1 FIX: convert emoji to unicode in topic titles in emails 2017-04-10 13:15:25 -04:00
Robin Ward 17f2974d0a SECURITY: Confirm new administrator accounts via email 2017-04-04 15:59:01 -04:00
Arpit Jalan 1853a4852c FIX: use email prefix only in subject 2017-03-21 20:29:57 +05:30
Neil Lalonde 402ddb810c FIX: email customizations now apply to both html and text parts 2017-03-10 14:08:03 -05:00
Neil Lalonde 15adbdcdd5 FEATURE: new template parameters for notification emails that can be used in links: topic_title_url_encoded and site_title_url_encoded 2017-03-10 14:08:03 -05:00
Blake Erickson 80858bae2c FEATURE: further restrict downloading of backups
- send email to logged in admin when they press the "download" button
- show pop-up that email was sent
- create email template
- require a valid token to download backup
2017-03-01 08:28:34 -07:00
Neil Lalonde 581d477ff3 add a comment because I can never find the mailing list summary email 2017-02-08 12:13:29 -05:00
Neil Lalonde d9146de080 FIX: an image can be shown twice in summary emails 2017-01-09 13:27:43 -05:00
Neil Lalonde 225e6703ba FIX: summary shows 0 new topics even though it shows some topics 2016-12-30 15:18:13 -05:00
Neil Lalonde 67347432b7 Remove unread counts from last section of summary email, and rename it "New for you" 2016-12-28 14:06:01 -05:00
Neil Lalonde 74956694e5 If summary email finds no topics, show topics more than 1 day old from new users 2016-12-19 14:54:08 -05:00
Neil Lalonde 239d06b218 add Likes Recieved to possible stats in summary email 2016-12-12 14:20:25 -05:00
Neil Lalonde ad5d16af8e FIX: summary email popular posts ordering by score, and increase minimum score to qualify as popular 2016-12-07 12:40:44 -05:00
Neil Lalonde 576a424130 FEATURE: number of new topics at the end of summary email can be controlled by a new setting, digest_other_topics 2016-12-01 14:20:24 -05:00
Neil Lalonde 985daf5c72 FIX: summary should not include certain post types 2016-12-01 12:01:32 -05:00
Neil Lalonde a187932126 Counts at top of summary email are links 2016-11-29 17:10:25 -05:00
Neil Lalonde 96daf5431f digest: don't show stats with 0. try to show new posts and new users counts. 2016-11-24 16:28:24 -05:00
Neil Lalonde 79dc0518c9 FIX: popular posts in digest need to use same restrictions as topics 2016-11-23 11:24:18 -05:00
Neil Lalonde 86deec3528 FIX: exclude popular posts from deleted topics 2016-11-22 13:23:21 -05:00
Neil Lalonde 1183e582c3 FIX: digest popular posts need minimum datetime 2016-11-18 16:57:23 -05:00
Neil Lalonde 45f368126f FEATURE: New summary/digest email design 2016-11-18 14:03:42 -05:00
Régis Hanol 829143bf88 FIX: 'List-Unsubscribe' header wasn't added to emails sent when mailing_list_mode was enabled 2016-08-01 20:19:00 +02:00
Régis Hanol 7848a84e0e FIX: ensure summary emails have the 'List-Unsubscribe' header set 2016-07-15 11:39:29 +02:00
Robin Ward 5f91919663 Email support for watching first post 2016-07-07 12:23:19 -04:00
James Kiesel 7a6bc3f1d7 Apply notification styles to mailing list email manually (#4283)
* Apply notification styles to mailing list email manually

* Fix failing spec
2016-06-21 20:42:30 +05:30
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