drupal_mail
includes/common.inc, строка 2057
- Версии
- 5
drupal_mail(
$mailkey, $to,$subject,$body, $from = NULL,$headers= array())- 6
drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE)
Send an e-mail message, using Drupal variables and default settings.
More information in the PHP function reference for mail()
Параметры
$mailkey
A key to identify the mail sent, for altering.
$to
The mail address or addresses where the message will be send to. The
formatting of this string must comply with RFC 2822. Some examples are:
user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>
$subject
Subject of the e-mail to be sent. This must not contain any newline
characters, or the mail may not be sent properly.
$body
Message to be sent. Drupal will format the correct line endings for you.
$from
Sets From to this value, if given.
$headers
Associative array containing the headers to add. This is typically
used to add extra headers (From, Cc, and Bcc).
<em>When sending mail, the mail must contain a From header.</em>
Возвращаемое значение
Returns TRUE
if the mail was successfully accepted for delivery,
FALSE
otherwise.
Связанные темы
Код
<?php
function drupal_mail($mailkey, $to, $subject, $body, $from = NULL, $headers = array()) {
$defaults = array(
'MIME-Version' => '1.0',
'Content-Type' => 'text/plain; charset=UTF-8; format=flowed',
'Content-Transfer-Encoding' => '8Bit',
'X-Mailer' => 'Drupal'
);
// To prevent e-mail from looking like spam, the addresses in the Sender and
// Return-Path headers should have a domain authorized to use the originating
// SMTP server. Errors-To is redundant, but shouldn't hurt.
$default_from = variable_get('site_mail', ini_get('sendmail_from'));
if ($default_from) {
$defaults['From'] = $defaults['Sender'] = $defaults['Return-Path'] = $defaults['Errors-To'] = $default_from;
}
if ($from) {
$defaults['From'] = $from;
}
$headers = array_merge($defaults, $headers);
// Custom hook traversal to allow pass by reference
foreach (module_implements('mail_alter') AS $module) {
$function = $module .'_mail_alter';
$function($mailkey, $to, $subject, $body, $from, $headers);
}
// Allow for custom mail backend
if (variable_get('smtp_library', '') && file_exists(variable_get('smtp_library', ''))) {
include_once './' . variable_get('smtp_library', '');
return drupal_mail_wrapper($mailkey, $to, $subject, $body, $from, $headers);
}
else {
// Note: if you are having problems with sending mail, or mails look wrong
// when they are received you may have to modify the str_replace to suit
// your systems.
// - \r\n will work under dos and windows.
// - \n will work for linux, unix and BSDs.
// - \r will work for macs.
//
// According to RFC 2646, it's quite rude to not wrap your e-mails:
//
// "The Text/Plain media type is the lowest common denominator of
// Internet e-mail, with lines of no more than 997 characters (by
// convention usually no more than 80), and where the CRLF sequence
// represents a line break [MIME-IMT]."
//
// CRLF === \r\n
//
// http://www.rfc-editor.org/rfc/rfc2646.txt
$mimeheaders = array();
foreach ($headers as $name => $value) {
$mimeheaders[] = $name .': '. mime_header_encode($value);
}
return mail(
$to,
mime_header_encode($subject),
str_replace("\r", '', $body),
join("\n", $mimeheaders)
);
}
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии