PhPMailer - 如何强制gmail显示SetForm中的name参数?

时间:2015-05-20 15:26:35

标签: php email gmail phpmailer

我使用PhpMailer和Google应用程序(使用简单的联系表单)。我们假设我的主电子邮件(使用Google应用程序设置)是info@company.com。 PhPMailer代码是标准的,如下所示:

<?php
include "classes/class.phpmailer.php"; // include the class name
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 587; // or 587
$mail->IsHTML(true);
$mail->Username = "info@company.com"; //MX records set up to use Gmail servers
$mail->Password = "xxxxxxxxx";
$mail->addReplyTo($_POST['email]);
$mail->SetFrom("info@company.com","Company Name");
$mail->AddAddress("help@company.com");
$mail->Subject = $_POST['subject];
$mail->Body = $_POST['body];
$mail->Send());
?>

我的问题是 - 在Gmail中,我总是看到从'我'发送的这类提交的电子邮件(即来自info@company.com)。但这不方便,因为我想看一些关于发件人的其他独特信息。显然,将以上部分更改为:

$mail->SetFrom($_POST['email]);

将被视为电子邮件伪造,并且无法再使用Gmail STMP。 HOWEVER ,为什么这不起作用(即不会更改与电子邮件关联的名称):

$mail->SetFrom('info@company.com', $_POST['email]);

?毕竟,是不是SetForm中的第二个参数是收件人的名字?为什么gmail没有列出这个名字,它继续列出“我”作为发件人?

我甚至试过这个:

$mail->SetFrom('info@company.com', 'Customer Request');

并且在Gmail中它仍然被列为“我” - 为什么它不被列为“客户请求”?名称不应被视为“伪造”?

有没有办法强制在SetFrom中显示名称而不是Gmail中的“我”?

我附上了“我”出现的屏幕截图(它出现在主gmail标签上)。 'Me' always appears

0 个答案:

没有答案