Commit Graph

609 Commits

Author SHA1 Message Date
Arpit Jalan
b457005b07 FIX: handle multiple paragraphs in email reply when parsing html 2014-10-08 19:45:46 +05:30
Robin Ward
b1271ed44b FIX: Remove html entities from text emails 2014-10-06 13:57:38 -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
Arpit Jalan
648d3f3458 FIX: properly align username for suppressed avatar images 2014-09-25 11:17:23 +05:30
Arpit Jalan
0a64657fab Suppress images for short emails 2014-09-24 23:52:27 +05:30
riking
a0dccf7bc0 FIX: Add "On day, name wrote:" quote trigger for emails 2014-09-09 16:27:06 -07:00
Sam
59d04c0695 Internal renaming of elder,leader,regular,basic to numbers
Changed internals so trust levels are referred to with

TrustLevel[1], TrustLevel[2] etc.

This gives us much better flexibility naming trust levels, these names
are meant to be controlled by various communities.
2014-09-05 15:20:52 +10:00
Robin Ward
1c5e8efa68 FEATURE: Show an email icon beside posts that arrived via email 2014-09-04 13:04:41 -04:00
Sam
1bef22bbb9 Merge pull request #2703 from riking/email-pr-receiver
Heavy refactor for Email::Receiver
2014-08-29 09:59:59 +10:00
riking
8ddd90daa4 Have parse_body() recover from ASCII-8BIT encoding
Added a test to make sure that the result can be passed into TextCleaner
(which expects UTF-8)
2014-08-28 14:38:19 -07:00
riking
0a09593f3b FIX: Prefer HTML in incoming emails, heavily refactor email receiver
This commit heavily refactors Email::Receiver to both better handle
different emails and improve testability.

A primary focus of the refactor is reducing the usage of class
variables, in favor of actually passing parameters - making it possible
for multiple tests to use the same Receiver instance.

The EmailLog reported when a topic is created is reflected to put the
user's email in the to_address field, instead of the system address.

The discourse_email_parser function is renamed to
discourse_email_trimmer, and additional stopping conditions are added to
make up for EmailReplyParser's inability to deal with html at the start
of a line.

The force_encoding calls are refactored out to a 'fix_charset' method.

parse_body is renamed to select_body, and the scrub_html method is
dropped in favor of the new HtmlCleaner class.

A new parse_body method is added, which performs the job of the removed
lines of code in the 'process' method.

EmailUnparsableError is redefined again, to be encoding errors (when the
declared encoding is not what was delivered).
2014-08-28 14:36:10 -07:00
riking
cb55ef4702 Add Email::HtmlCleaner for email processing
This class is in charge of stripping out most of the crap from the HTML
portion of emails that email clients generate, so that it can be sanely
post-processed for signatures and quoting boundaries.
2014-08-28 14:36:10 -07:00
riking
0d0225133c FIX: Failed incoming emails could create empty topics
A failure condition is eliminated where a topic would be created, but post
creation would fail, leaving the forum with a topic without any posts.
By asking PostCreator to create the topic instead, inside of its
transaction, this failure condition is eliminated.

Additionally, attachments are restored to working status. Previously,
the attachment code would build up the post raw, but then drop it and
not do anything with the result (creating orphaned uploads). By actually
placing the raw value back in the options hash, it is included in the
created post.
2014-08-28 14:35:43 -07:00
Eyal Levin
e0c2f3df3a Enable RTL direction in emails. 2014-08-27 14:38:03 +03:00
Régis Hanol
77ba2015eb FEATURE: new disable_emails site setting 2014-08-23 11:07:37 +02:00
Robin Ward
b1eb44bd0b Merge pull request #2678 from techAPJ/patch-2
FIX: lazyYT youtube links not getting included in email
2014-08-22 14:54:41 -04:00
Arpit Jalan
f92b69ed2f FIX: lazyYT youtube links not getting included in email 2014-08-23 00:21:31 +05:30
riking
cce8b4720a Have reciever handle multiple To addresses 2014-08-13 11:43:49 -07:00
Neil Lalonde
50ac4c6336 FIX: cleanup aliases in email From and Reply-to fields to prevent Bad sender address syntax errors 2014-08-08 13:35:47 -04: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
Sam
dcc9923e4b FIX: failed messages posted via email silently ignored
also... test suite over mocking
2014-07-31 18:46:02 +10:00
Neil Lalonde
b3c149de22 FIX: use email_site_title for emails like reset password and account activation too 2014-07-22 15:52:20 -04:00
riking
17db265b41 Remove use of email_in_address and email_in_category 2014-07-17 10:25:13 -07:00
Robin Ward
dd6fd7fa39 FIX: Don't put iframes in emails where they are sanitized out. Replace
them with links.
2014-07-14 16:41:37 -04:00
Neil Lalonde
362adb0498 FIX: add site setting email_site_title, which overrides title in reply by email address in case the title has invalid characters 2014-07-09 16:44:18 -04:00
riking
da9048f3ea Fix email code & tests 2014-06-27 12:04:31 -07:00
Robin Ward
f3135533c2 Add some more mail headers back 2014-06-14 12:29:50 -04:00
Jeff Atwood
d782a7dc48 remove List-Post header as a test 2014-06-14 01:21:32 -07:00
Jeff Atwood
834b83aaea use a variable to set the header 2014-06-14 00:13:08 -07:00
Jeff Atwood
c4d8d80b07 only set List-Post if reply via email is on 2014-06-13 15:49:11 -07:00
Jeff Atwood
beaa145572 some email notification header fixes 2014-06-13 15:42:20 -07:00
Robin Ward
c690fa0d19 FIX: Replace protocol relative URLs in emails 2014-06-13 17:11:04 -04:00
Robin Ward
8e882ad145 CSS: Attempt to remove hairline border from android gmail blockquotes. 2014-06-09 15:28:26 -04: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
Robin Ward
ab319de4f9 FIX: Github commit oneboxing formatting in emails 2014-05-14 16:40:54 -04:00
Robin Ward
954f0df625 Email formatting fix: Convert aside to div for better email handling 2014-05-13 14:45:00 -04:00
Robin Ward
1bd79672ee Make oneboxes in emails look slightly less awful 2014-05-09 14:39:26 -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
4d3effa686 User new /my/preferences route in an email 2014-04-29 16:34:31 -04:00
Robin Ward
2341118570 Add categories to the first topics in the email digest 2014-04-17 15:22:19 -04:00
Régis Hanol
4a93b1b0bc missed a newline 2014-04-15 00:04:13 +02:00
Régis Hanol
2505d18aa9 FEATURE: support email attachments 2014-04-14 22:55:57 +02:00
Régis Hanol
e6989b5313 Merge pull request #2192 from jorgemanrubia/configurable-emails-prefix
Option to change the subject prefix in emails
2014-03-28 15:08:50 +01:00
Neil Lalonde
fd504e741f FIX: reply by email can handle emails with attachments. Attachments are still ignored, but a post or topic can be created from the email now. 2014-03-28 09:57:20 -04:00
Jorge Manrubia
806924dd7e Option to change the email subject prefix
It adds a new setting 'email_prefix' to configure which [label] will be used in the subject of emails. Discourse currently uses '[title]'. The problem is that sometimes you need to set a longer title, that doesn't really work well for emails. I think this is very common since the HTML `<title>` tag is very important for SEO.

It will default to '[title]' if this setting is not used.

See: https://meta.discourse.org/t/where-to-change-the-email-subject-prefix/11989
2014-03-26 23:06:00 +01:00
Régis Hanol
5b7f2b4488 ooops. I don't know how to write smtp 2014-03-12 11:55:08 +01:00
Régis Hanol
c5298cd25f BUGFIX: require net/stmp module to properly handle exceptions 2014-03-12 11:53:10 +01:00
Sam
b7ece53966 BUGFIX: rescue should splat 2014-03-09 23:06:54 +11:00
Régis Hanol
18e9d319fd BUGFIX: catch STMP client errors in email sending background job
Will log the exception message in the skipped reason instead of keeping
the job in the queue whenever the email address is invalid
2014-03-07 16:33:15 +01: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
Benjamin Kampmann
d32cb55837 Add public-inbox to Email-In-Feature
- Adds the advanced option to accept email from non-users per category email-address
 - Adds tests covering the new feature
 - Adds UI to configure this feature in the frontend
2014-02-28 16:53:58 +01:00
Benjamin Kampmann
37cea49459 Add Email-In-Per-Category
- allow the configuration of an inbox-email-address per category
 - post emails to that email into that category instead of global

 - Adds UI for configuration
 - Adds Documentation for configuration
 - Adds Tests for new feature
2014-02-28 16:53:58 +01:00
Benjamin Kampmann
4af2cf3f23 Refactor and clean up New-Topic via Email
With the new email_in admin configuration setting, emails to the email_in_address fetched via POP will now be processed and posted as new topics to the forum.

With the email_in_min_trust you can control the trust level the user needs to have at least to be able to post an email as a new topic.

Also contains tests for the email-in feature and minor clean ups
2014-02-28 16:53:58 +01:00
Allen Hancock
dad43b9853 Optionally allow discourse to create new topics from email. 2014-02-28 16:53:58 +01:00
Sam
a28a0bbeeb PERF: stop messing with strings that come back from I18n.t
allows better caching
2014-02-18 14:10:03 +11:00
Neil Lalonde
35dae76bbd Log when and why an email was not sent in email_logs 2014-02-14 13:06:39 -05:00
Robin Ward
318e692290 FIX: If there is an exception when parsing one email, don't stop all
work, return an error code and continue.
2014-02-12 12:08:34 -05:00
Robin Ward
2d15c82b26 FIX: Digest styling for oneboxes 2014-01-22 15:30:44 -05:00
Herb Jiang
5fa464e10b force_encoding according to the charset in mail, this solve encoding problem when not using ‘utf-8’ charset. 2014-01-19 02:12:38 +08:00
Sam
9738c4ff48 FEATURE: backport a minimal String#scrub
BUGFIX: invalid byte sequence in email would explode all processing
2013-12-30 14:05:25 +11:00
Robin Ward
f1a7b63afc FIX: Large pre blocks in emails were increasing the width. 2013-12-16 14:41:59 -05:00
Robin Ward
8b4c030c16 Small email fixes 2013-12-03 10:11:04 -05:00
Robin Ward
5fd5b18c19 Missing # in email colors 2013-12-02 10:04:29 -05:00
Robin Ward
781a8876d3 Show post count in digest emails. Sort by score 2013-11-29 13:00:25 -05:00
Robin Ward
3da2285ef1 FIX: Missing styles in HTML digest emails 2013-11-29 12:21:36 -05:00
Robin Ward
8c8645f158 FIX: Code and Emoticon formatting in HTML emails. 2013-11-28 17:21:14 -05:00
Robin Ward
5055da76e6 Abort triggers for email body processing 2013-11-20 13:30:01 -05:00
Robin Ward
c86b06e3fa Fix for non-english email polling. 2013-11-04 15:30:24 -05:00
Régis Hanol
561792a615 FIX: schemaless urls in emails 2013-08-27 00:08:38 +02:00
Robin Ward
ff3b163a78 FIX: Another email regexp for quote lines in the format we can recognize including
the site name.
2013-08-21 16:54:51 -04:00
Robin Ward
40599d20e8 FIX: Footer formatting in digest emails 2013-08-16 12:19:26 -04:00
Jeff Atwood
9a2f758a00 remove unnecessary font-size on digest <a> 2013-08-15 16:52:10 -07:00
Jeff Atwood
8303f48004 add dimmed color to digest footer 2013-08-15 15:18:11 -07:00
Robin Ward
b7c50ecdaa FIX: Respect protocol relative URLs in email styling 2013-08-14 11:32:17 -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
Sam
61b330abb4 odd formatting 2013-08-01 16:02:43 +10:00
Sam
df3a4c05cd upgrade rack mini profiler
fixes for ruby 1.9.3
2013-07-30 17:36:34 +10:00
Jeff Atwood
412e600106 remove email footer font override
looks hideous to have mismatching body and footer fonts on anything
retina
2013-07-28 23:00:02 -07:00
Sam
0320a5ae64 correct email styles 2013-07-27 08:09:32 +10:00
Sam
d51dcd1705 improve email styling, include extra respond link 2013-07-26 17:27:46 +10:00
Neil Lalonde
e0b9117f15 Fix for emails with empty body 2013-07-24 15:07:51 -04:00
Robin Ward
2319a824f8 Special work to never include previous posts in parsed emails. Also a new attempt
to catch reply strings in different languages.
2013-07-24 14:22:32 -04:00
Sam
366cb13140 restyle all user notification emails to use a custom html template 2013-07-24 17:24:55 +10:00
Robin Ward
5398553628 Merge pull request #1234 from stephankaag/template_args
Determine template_args only once per instance
2013-07-22 12:20:23 -07:00
Robin Ward
3e7b418ea8 First Try: Include Post History (context) in Notification Emails 2013-07-22 15:06:37 -04:00
Stephan Kaag
ea51f0fe04 Determine template_args only once per instance 2013-07-22 20:20:41 +02:00
Robin Ward
cc47616cdb Merge pull request #1157 from abbat/email-custom-headers
Add custom headers for email messages
2013-07-10 07:12:51 -07:00
Anton Batenev
60c49a85d0 Refactoring #1157 2013-07-10 17:47:38 +04:00
Anton Batenev
b0dbb0ea13 And add tests for empty string & null 2013-07-09 20:19:10 +04:00
Robin Ward
013ad0fdda Added In-Reply-To and References email headers. Additionally removed username from
email replies and new posts to keep the subjects collapsable.
2013-07-08 11:48:40 -04:00
Anton Batenev
4e04c4dddd Add custom headers for email messages
See http://meta.discourse.org/t/custom-headers-in-emails-site-settings/7480
2013-07-07 04:37:44 +04:00
Robin Ward
7f70bc3bbd Add discourse.forum to all List-Ids 2013-07-02 15:21:34 -04:00
Robin Ward
fab1be7c8e Adds a List-Id header to outgoing mail 2013-07-02 14:13:46 -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
bb908d5913 Email parsing uses Traditional Markdown Linebreaks by default. Added JS tests for line breaks. 2013-06-21 11:37:26 -04:00
Robin Ward
0d10b5c9c4 More email receiving logic 2013-06-20 12:38:37 -04:00
Robin Ward
82d1465d18 Ugly Hack: Remove improperly parsed headers from Mail::Message 2013-06-19 12:14:01 -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
bd1b4d3130 Include a custom reply address when reply by email is enabled. 2013-06-13 17:00:00 -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
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
66f5a3f6f6 FIX: Emoji sizes in emails should be done by the EmailStyler 2013-06-13 12:15:05 -04:00
Robin Ward
e2ce4947d7 Adds max-width to images in digest emails. 2013-06-11 12:28:50 -04:00
Robin Ward
8b4e3402c2 Small improvements to digest emails and preview mechanism. 2013-06-11 12:27:11 -04:00
Robin Ward
93bbe190c0 Moved Email components into a module 2013-06-10 15:34:10 -04:00