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

fquxozlt  于 2023-02-18  发布在  PHP
关注(0)|答案(5)|浏览(171)

用php mail()我可以写

mail('to@example.com','subject!','body','From: from@example.com','-f from@example.com');

但是我怎么能对phpmailer做同样的事情呢?

0vvn1miw

0vvn1miw1#

泰奥洛狄斯的回答中相关的一行是:

$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) {
....

第三参数(默认为真),因此信封发送者被设置为与发送者相同的地址。
如果你想设置不同的地址作为信封发件人和发件人地址,这会很有趣。这是如何CHANGE信封发件人的方法。因此,你必须像这样设置你的PHPMailer示例的$sender属性:

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

qacovj5a2#

This example shows how.
相关行:

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

of1yzvn43#

f标志是使用$email-〉Sender设置的
这是一个“来自信封”,它允许电子邮件服务器在接收您的其余电子邮件数据之前评估发件人的电子邮件地址
SetFrom -这是最终用户将看到的消息来源的电子邮件地址
AddReplyTo -这是他们回复电子邮件时弹出的电子邮件地址
发件人需要是干净的才能通过垃圾邮件过滤器
SetFrom必须是干净的才能通过垃圾邮件过滤器
AddReplyTo并不重要,它允许服务代表用户发送电子邮件,而用户的电子邮件地址不是由服务管理的。

rggaifut

rggaifut4#

什么对我有用(模糊)使用

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

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

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

现在邮件到达Outlook从'鲁珀特熊' [name@yourdomain.com]

fdx2calv

fdx2calv5#

正如汉内斯·摩根斯坦正确指出的那样,答案是:

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

顺序很重要。首先

$pMail->Sender='admin@yourdomain.com';

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

否则,它将无法工作,因为发件人被覆盖。

相关问题