2015-03-12 4 views
3

Как изменился адрес FROM phpmailer's? Я ожидал, что следующее будет работать, однако все отправленные письма будут использовать отправку с адреса электронной почты, установленного первым вхождением SetFrom().Изменить адрес FROM phpmailer

$mail = new myPHPMailer(true); 
$mail->SMTPDebug=2; 

$mail->Subject = "My Subject"; 
$mail->MsgHTML('My Message'); 
$mail->AddReplyTo('[email protected]'); 

$mail->ClearAllRecipients(); 
$mail->SetFrom('[email protected]'); 
$mail->AddAddress("[email protected]"); 
$mail->Send(); 

$mail->ClearAllRecipients(); 
$mail->SetFrom('[email protected]'); //Does not update FROM address! 
$mail->AddAddress("[email protected]"); 
$mail->Send(); 

PS. Почему я хочу это сделать? Я обнаружил, что некоторые компании настраивают свои маршрутизаторы электронной почты, чтобы запретить все входящие внешние электронные письма, у которых есть домен верхнего уровня отправителя, такие же, как и их собственные.

ответ

1

Отправитель свойств устанавливается один раз при вызове метода setFrom. Нет способа индивидуально установить Sender. Однако вы можете использовать

$mail->Sender = <newvaluehere>; 

или

$mail->set('Sender', <NEWVALUEHERE>); 

Кроме того, я хотел бы посоветовать не использовать эту библиотеку, это вряд ли соответствует и не кажется, готовый к производству. Вы можете рассмотреть проверенный пакет, такой как swiftmailer.

Причина, почему этот класс не кажется, производство готового

/** 
* Set or reset instance properties. 
* You should avoid this function - it's more verbose, less efficient, more error-prone and 
* harder to debug than setting properties directly. 
* Usage Example: 
* `$mail->set('SMTPSecure', 'tls');` 
* is the same as: 
* `$mail->SMTPSecure = 'tls';` 
* @access public 
* @param string $name The property name to set 
* @param mixed $value The value to set the property to 
* @return boolean 
* @TODO Should this not be using the __set() magic function? 
*/ 
+0

Комментарий 1: Спасибо за подтверждение того, что я наблюдал. Я проверю ваш другой подход, и, надеюсь, это сработает. Это где-то задокументировано? – user1032531

+0

Комментарий 2: swiftmailer? Нравится? Мысль phpmailer была стандартом defacto. Всегда удивляюсь, что нет реального встроенного в PHP решения для современной электронной почты. Может быть, сейчас? – user1032531

+1

Я бы порекомендовал SwiftMailer ... его значительно превосходит, и если что-то стандартное в наши дни, я бы сказал, что SwiftMailer ... Я также думаю, что есть новые расширения для почты. Если они есть в PECL, и вам нужно будет установить расширения PECL в цели развертывания, что может быть проблематично, если вы получите ham-stred с помощью какого-то общего хостинга. – prodigitalson

Смежные вопросы