簡體   English   中英

如何使用phpmailer更改信封發件人地址?

[英]How to change envelope sender address using phpmailer?

用 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()地址(和名稱可選SetFrom() 如果你看代碼SetFrom()需要三個參數:

/**
 * 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) {
....

第三個參數(默認為 true),因此信封發件人被設置為與發件人相同的地址。

如果您想將不同的地址設置為信封發件人和發件人地址,這會很有趣。 這是如何更改信封發件人的方法。 因此,您必須像這樣設置PHPMailer實例的$sender屬性:

  $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');

正如Hannes Morgenstern正確建議的那樣,答案是:

$pMail->Sender='admin@yourdomain.com';
$pMail->SetFrom('name@yourdomain.com', 'First Last', FALSE);

-f 標志設置為 $email->Sender

這是信封,允許電子郵件服務器在收到您的其余電子郵件數據之前評估發件人的電子郵件地址

SetFrom - 這是最終用戶將看到的郵件地址

AddReplyTo - 這是他們回復電子郵件時將彈出的電子郵件地址

發件人需要干凈才能通過垃圾郵件過濾器

SetFrom 需要干凈才能通過垃圾郵件過濾器

AddReplyTo 並不重要。 這允許服務代表具有不受服務管理的電子郵件地址的用戶發送電子郵件。

什么對我有用(默默地)使用

$mail->SetFrom('name@yourdomain.com', 'Rupert Bear');

是使用 localhost 而不是直接訪問 smtp 服務器,例如

$email->Host='localhost'; // SMTP server this way you get from name (don't know why)

現在郵件從“Rupert Bear”[name@yourdomain.com] 到達 Outlook

暫無
暫無

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

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