From ee59107c23a0c657d87550cca3fe601e5314992c Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Mon, 31 Aug 2009 18:30:27 +0000 Subject: #331180 by pwolanin and Rob Loach: Added pluggable smtp/mail framework. --- modules/system/mail.sending.inc | 62 +++++++++++++++++++++++++++++++++++++++++ modules/system/system.info | 1 + 2 files changed, 63 insertions(+) create mode 100644 modules/system/mail.sending.inc (limited to 'modules/system') diff --git a/modules/system/mail.sending.inc b/modules/system/mail.sending.inc new file mode 100644 index 000000000..6533de07d --- /dev/null +++ b/modules/system/mail.sending.inc @@ -0,0 +1,62 @@ + $value) { + $mimeheaders[] = $name . ': ' . mime_header_encode($value); + } + return mail( + $message['to'], + mime_header_encode($message['subject']), + // Note: e-mail uses CRLF for line-endings, but PHP's API requires LF. + // They will appear correctly in the actual e-mail that is sent. + str_replace("\r", '', $message['body']), + // For headers, PHP's API suggests that we use CRLF normally, + // but some MTAs incorrectly replace LF with CRLF. See #234403. + join("\n", $mimeheaders) + ); + } +} + +/** + * A mail sending implementation that captures sent messages to a variable. + * + * This class is for running tests or for development. + */ +class TestingMailSystem implements MailSystemInterface { + + /** + * Accept an e-mail message and store it in a variable. + * + * @param $message + * An e-mail message. + */ + public function mail(array $message) { + $captured_emails = variable_get('drupal_test_email_collector', array()); + $captured_emails[] = $message; + variable_set('drupal_test_email_collector', $captured_emails); + return TRUE; + } +} + diff --git a/modules/system/system.info b/modules/system/system.info index 8eb7db900..fa9a77d59 100644 --- a/modules/system/system.info +++ b/modules/system/system.info @@ -12,4 +12,5 @@ files[] = system.install files[] = system.test files[] = system.tar.inc files[] = system.tokens.inc +files[] = mail.sending.inc required = TRUE -- cgit v1.2.3