2012-02-17 20 views
3

私はこのスクリプトPHP PEAR send_mail名前と電子メール

$to = '[email protected]'; 
$headers['To'] = $to; 
$headers['From'] = '"My Name" <[email protected]>'; 
$headers['Return-Path'] = '[email protected]'; 
$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>'); 

に電子メールを送信するためにtryngだ。しかし、私は次のようなメッセージだと送信者の設定に失敗しました:私が作るとき

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

をこのようなフィールドから:

$headers['From'] = '[email protected]'; 

それは正常に動作し、私は電子メールを受信します。

送信者の名前でメールを送信するにはどうすればよいですか?

+0

quotelessを試しましたか? 'My Name <[email protected]>'も有効なメールボックスです。 – Alexander

答えて

5

リターンパスと返信先が同じではありません。

Return-Path:電子メールのエンベロープ送信者を無効にする場合は、Return-Pathヘッダーを設定し、From:ヘッダーの値(PEAR Webサイトから)の代わりにその値が使用されます。 Return-Pathの名前は設定できません。メールアドレスだけです。

返信先:受信者をこのアドレスに返信します。名前とメールアドレスを設定できます。

返信先を返信先に置き換えると正常に動作します。

1

[送信元]にメールアドレスが必要なのはなぜですか。私はあなたが "Reply-To"ヘッダーを追加してそこに電子メールアドレスを提供し、Fromだけを指定することをお勧めします。

+0

メールアドレスが必要なのは、送信元がないために送信されないためです。しかし、Return-PathはReply-Toだったのですが、私の間違いは私でした。 Reply-ToでReturn-Pathを置き換えると、動作します。 – Marm

+0

reply-toを設定すると聞いてよかったです –

関連する問題