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

时间:2012-12-17 17:28:21

标签: php phpmailer

使用php mail()我可以写

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

但我怎么能用phpmailer做同样的事呢?

4 个答案:

答案 0 :(得分:13)

Theolodis回答的相关内容是:

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

没有必要使用AddReplyTo()这是完全不同的东西。

您只需使用SetFrom()设置您的发件人地址(以及可选的名称)。如果您查看codeSetFrom()需要三个参数:

/**
 * 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);

答案 1 :(得分:8)

This example shows how.

相关部分:

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

答案 2 :(得分:1)

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

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

SetFrom - 这是最终用户将看到来自

的消息的电子邮件地址

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

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

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

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

答案 3 :(得分: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'来到Outlook”。 [name@yourdomain.com]