php mail() で書くことができます
mail('to@example.com','subject!','body','From: from@example.com','-f from@example.com');
しかし、どうすれば phpmailer で同じことができますか?
Theolodisの回答の関連行は次のとおりです。
$mail->SetFrom('name@yourdomain.com', 'First Last');
これを使う必要はまったくありませんAddReplyTo()
。
を使用して、送信元アドレス (およびオプションで名前) を設定するだけで済みますSetFrom()
。コードを見ると、SetFrom()
は 3 つのパラメーターを取ります。
/**
* Set the From and FromName properties
* @param string $address
* @param string $name
* @param boolean $auto Whether to also set the Sender address, defaults to true
* @throws phpmailerException
* @return boolean
*/
public function SetFrom($address, $name = '', $auto = true) {
....
3 番目のパラメーター (デフォルトは true) であるため、エンベロープ送信者は送信者と同じアドレスに設定されます。
エンベロープ送信者と差出人アドレスとして異なるアドレスを設定したい場合は、興味深いものになります。これは、エンベロープ送信者を変更する方法です。そのため、インスタンスの$sender
プロパティを次のように設定する必要があります。PHPMailer
$pMail->Sender='admin@yourdomain.com';
$pMail->SetFrom('name@yourdomain.com', 'First Last', FALSE);
関連する行:
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddReplyTo('name@yourdomain.com', 'First Last');
ハンネス・モルゲンシュテルンが正しく示唆したように、答えは次のとおりです。
$pMail->Sender='admin@yourdomain.com';
$pMail->SetFrom('name@yourdomain.com', 'First Last', FALSE);
使用して(あいまいに)何がうまくいったか
$mail->SetFrom('name@yourdomain.com', 'Rupert Bear');
smtpサーバーに直接アクセスするのではなく、localhostを使用することでした。
$email->Host='localhost'; // SMTP server this way you get from name (don't know why)
「Rupert Bear」[name@yourdomain.com] から Outlook にメールが届くようになりました