6

使用 php mail() 我可以写

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

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

4

4 回答 4

19

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),因此信封发件人被设置为与发件人相同的地址。

如果您想将不同的地址设置为信封发件人和发件人地址,这会很有趣。这是更改信封发件人的方法。因此,您必须像这样设置实例的$sender属性:PHPMailer

  $pMail->Sender='admin@yourdomain.com';
  $pMail->SetFrom('name@yourdomain.com', 'First Last', FALSE);
于 2013-08-05T08:04:47.820 回答
9

这个例子展示了如何。

相关行:

$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);
于 2012-12-17T17:36:57.157 回答
2

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

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

SetFrom - 这是最终用户将看到的邮件来自的电子邮件地址

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

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

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

AddReplyTo 并不重要。这允许服务代表具有不受服务管理的电子邮件地址的用户发送电子邮件。

于 2017-05-12T21:30:48.200 回答
0

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

$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

于 2016-03-01T17:40:40.310 回答