簡體   English   中英

PHP PEAR send_mail無法使用姓名和電子郵件設置發件人

[英]PHP PEAR send_mail Failed to set sender with name and email

我正在嘗試使用此腳本發送電子郵件

$to = 'example@example.com';
$headers['To'] = $to;
$headers['From'] = '"My Name" <examlpe@example.com>';
$headers['Return-Path'] = 'examlpe@example.com';
$headers['Subject'] = 'Subject';

$auth = array('host' => MAIL_HOST, 'auth' => true, 'username' => MAIL_USER, 'password' => MAIL_PASS);
$smtp = Mail::factory('smtp', $auth);
$mail = $smtp->send($to, $headers, $message);

if (PEAR::isError($mail))
    echo('<p>PEAR mail: '.$mail->getMessage().'</p>');
else
    echo('<p>PEAR mail: Message successfully sent!</p>');

但我收到以下消息:

Failed to set sender: "My Name" <example@example.com> [SMTP: Invalid response code received from server (code: 501, response: <"My Name" <example@example.com>>: "@" or "." expected after ""My Name"")]

當我像這樣制作from字段時:

$headers['From'] = 'examlpe@example.com';

它工作正常,我收到了電子郵件。

如何發送包含發件人姓名的電子郵件?

Return-Path和Reply-To不一樣。

返回路徑:如果要覆蓋電子郵件的信封發件人,請設置Return-Path標頭,將使用該值而不是From:標頭(來自PEAR網站)的值。 您不能為Return-Path設置名稱,只能設置電子郵件地址。

回復:使收件人回復此地址。 您可以設置名稱和電子郵件地址。

因此,通過Reply-To替換Return-Path,它將起作用。

為什么需要From中的電子郵件地址。 我建議你應該添加“回復”標題,並在那里提供電子郵件地址,然后在“僅”中指定“名稱”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM