2016-05-29 2 views
-1

В следующей функции переменная $ aFrom устанавливает поле «from» для адреса электронной почты, на который получатель может ответить. Однако, если я хочу добавить имя «от». Например, мой адрес электронной почты - [email protected], но когда человек получает электронное письмо, я хочу, чтобы они увидели, что письмо от «John Doe». Они все равно должны отвечать на [email protected]Добавление имени «from» в почтовой функции php

public static function SendMail_HTML($aFrom, $aTo, $aSubject, $aMessage) { 
    $theHeaders = 
     'MIME-Version: 1.0' . "\r\n" . 
     'Content-type: text/html; charset=UTF-8' . "\r\n" . 
     'From: ' . $aFrom . '' . "\r\n" . 
     'Reply-To: ' . $aFrom . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 

    mail($aTo, $aSubject, $aMessage, $theHeaders); 

} 
+0

Вы хотите быть 'From: John Doe <[email protected]> '. – ceejayoz

+1

Возможный дубликат [Изменить имя отправителя php mail вместо [email protected]] (http://stackoverflow.com/questions/8365754/change-the-sender-name-php-mail-instead-of-sitenamehostname- com) –

ответ

0

Заголовок «From» может содержать имя, а также адрес электронной почты предполагаемого получателя. Все, что вам нужно сделать, это правильно отформатировать.

Изменение:

'From: ' . $aFrom . '' . "\r\n" . 

в

'From: John Doe <' . $aFrom . '>' . '' . "\r\n" . 

обертывания адреса электронной почты в <> символов. Затем просто замените часть «John Doe» правильным именем, либо напрямую, либо с переменной.

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

+0

Что такое '. «все»? – Mike

+0

Как очистить почтовые поля? –

+0

@Mike, часть «.». »Была в исходном коде, отправленном оператором. Это необязательно и может быть удалено. – badandyomega

0

Вы можете попробовать этот вариант. Вот новый аргумент $aFromName, вы можете использовать его для имени отправителя для вашей функции, и в этом случае получатель получает электронную почту, например, John Doe <[email protected]>. Клиент электронной почты показать только «John Doe», и если вы ответите на это письмо, это будет отослано на [email protected]

function SendMail_HTML($aFrom, $aTo, $aSubject, $aMessage, $aFromName = '') 
{ 
    $aFrom = $aFromName === '' ? $aFrom : "$aFromName <$aFrom>"; 
    $theHeaders = 
     'MIME-Version: 1.0' . "\r\n" . 
     'Content-type: text/html; charset=UTF-8' . "\r\n" . 
     'From: ' . $aFrom . '' . "\r\n" . 
     'Reply-To: ' . $aFrom . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 
    mail($aTo, $aSubject, $aMessage, $theHeaders); 
} 
+0

** Почему ** должен ли OP попробовать этот вариант? В чем тут разница? Добавьте текст, объясняющий, что вы сделали. – Mike

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