我使用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标签上)。