2016-05-29 46 views
-1

在以下函數中,$ aFrom變量將「from」字段設置爲收件人可以回覆的電子郵件地址。但是,如果我想添加「來自」名稱,該怎麼辦?例如,我的電子郵件地址是[email protected],但是當該人收到電子郵件時,我希望他們看到該電子郵件來自「John Doe」。儘管如此,他們仍然可以回覆[email protected]在php郵件函數中添加「from」名稱

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

你會希望它是'來源:李四<[email protected]> '。 – ceejayoz

+1

可能的重複[更改發件人名稱php郵件,而不是[email protected]](http://stackoverflow.com/questions/8365754/change-the-sender-name-php-mail-instead-of-sitenamehostname- com) –

回答

0

「發件人」標題可以包含名稱以及預期收件人的電子郵件地址。所有你需要做的是正確格式化。

變化:由<>字符包裹的電子郵件地址

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

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

。然後,用正確的名稱直接或用變量替換「John Doe」部分。

注意:請確保清理您從計劃直接在電子郵件標題中使用的用戶接受的任何值。

+0

什麼是'。 ''.'所有關於? – Mike

+0

如何清理電子郵件字段? –

+0

@Mike,「。」「。」部分在操作員發佈的原始代碼中。這是沒有必要的,可以刪除。 – badandyomega

0

你可以嘗試這個變種。這裏有新的$aFromName參數,你可以用它來傳遞發送者名稱給你的函數,在這種情況下,接收者從例如John Doe <[email protected]>得到電子郵件。電子郵件客戶端只顯示「李四」,如果您回覆此電子郵件將sended到[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

**爲什麼**應該嘗試這個變體?它有什麼不同?添加一些文字來解釋你所做的事情。 – Mike