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

如何使用phpmailer更改信封发件人地址?,php,phpmailer,Php,Phpmailer,使用php mail()我可以编写 mail('to@example.com','subject!','body','From: from@example.com','-f from@example.com'); 但是如何使用phpmailer实现同样的功能? 相关线路: $mail->SetFrom('name@yourdomain.com', 'First Last'); $mail->AddReplyTo('name@yourdomain.com', 'First Last'

使用php mail()我可以编写

mail('to@example.com','subject!','body','From: from@example.com','-f from@example.com');
但是如何使用phpmailer实现同样的功能?

相关线路:

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

Theolodis答案中的相关行是:

$mail->SetFrom('name@yourdomain.com', 'First Last');
没有必要使用
AddReplyTo()
这是完全不同的

您只需使用
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
实例的属性:

  $pMail->Sender='admin@yourdomain.com';
  $pMail->SetFrom('name@yourdomain.com', 'First Last', FALSE);
什么对我有用(隐晦地)使用

使用localhost而不是直接访问smtp服务器,例如

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

现在,来自“鲁伯特熊”的邮件到达Outlook[name@yourdomain.com]

将-f标志设置为$email->Sender

这是一个信封,允许电子邮件服务器在接收其余电子邮件数据之前评估发件人的电子邮件地址

SetFrom-这是最终用户将看到的作为消息来源的电子邮件地址

AddReplyTo-这是他们回复电子邮件时会弹出的电子邮件地址

发件人需要干净才能通过垃圾邮件过滤器

SetFrom需要干净才能通过垃圾邮件过滤器


AddReplyTo其实并不重要。这允许服务代表用户发送电子邮件,电子邮件地址不由服务管理。

这是唯一正确的答案。其他答案设置“From”标题。。。不邮件信封中的实际发件人-根据问题。话虽如此,我认为OP实际上想更改“From”标题。我不相信
SetFrom()
AddReplyTo()
可以解决OP对信封发送者的问题。请参阅关于
发送方的
变量的底部。
$email->Host='localhost'; // SMTP server this way you get from name (don't know why)