mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-07-20 16:42:59 +02:00
merge -c3261 from trunk to branch 2.0
Resolved issue 0000977: Error on sendmail with smtp git-svn-id: http://piwigo.org/svn/branches/2.0@3262 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -73,13 +73,27 @@ class smtp_mail
|
||||
return $this->no_error;
|
||||
}
|
||||
|
||||
function add_recipients(&$recipients, $headers, $type_header)
|
||||
{
|
||||
if (preg_match('/^\s*'.$type_header.'\s*:.*/mi', $headers, $matches) != 0)
|
||||
{
|
||||
$list = explode(',', $matches[0]);
|
||||
foreach ($list as $email)
|
||||
{
|
||||
if (strpos($email, '<') !== false)
|
||||
{
|
||||
$email = preg_replace('/.*<(.*)>.*/i', '$1', $email);
|
||||
}
|
||||
$recipients[] = trim($email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Adaptation of pun_mail
|
||||
function mail($to, $subject, $message, $headers = '')
|
||||
{
|
||||
$this->no_error = true;
|
||||
|
||||
$recipients = explode(',', $to);
|
||||
|
||||
// Are we using port 25 or a custom port?
|
||||
if (strpos($this->host, ':') !== false)
|
||||
{
|
||||
@@ -118,15 +132,27 @@ class smtp_mail
|
||||
$this->server_write('MAIL FROM:<'.$this->email_webmaster.'>'."\r\n");
|
||||
$this->server_parse('250');
|
||||
|
||||
if (preg_match('/^\s*to\s*:.*/mi', $headers) === 0)
|
||||
if ((preg_match('/^\s*to\s*:.*/mi', $headers) === 0) and !empty($to))
|
||||
{
|
||||
$to_header = 'To:'.implode(',', array_map(create_function('$email','return "<".$email.">";'), $recipients));
|
||||
$to_header = 'To:'.implode(',', array_map(create_function('$email','return "<".$email.">";'), explode(',', $to)));
|
||||
}
|
||||
else
|
||||
{
|
||||
$to_header = '';
|
||||
}
|
||||
|
||||
if (!empty($to))
|
||||
{
|
||||
$recipients = explode(',', $to);
|
||||
}
|
||||
else
|
||||
{
|
||||
$recipients = array();
|
||||
}
|
||||
|
||||
$this->add_recipients($recipients, $headers, 'Cc');
|
||||
$this->add_recipients($recipients, $headers, 'Bcc');
|
||||
|
||||
@reset($recipients);
|
||||
while (list(, $email) = @each($recipients))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user