我遇到此问题,当我收到从本地主机网站发送的电子邮件时,我收到错误的发件人部分电子邮件地址($ mail-&gt ; SetFrom($ email,$ name))。 我将自己的电子邮件地址作为发件人,而不是我网站上文本框中输入的电子邮件地址。
我到处寻找一些答案,遗憾的是没有任何效果。我尝试过使用Chrome帐户设置并将不太安全的应用设置为开启。那没用。
我尝试了多种设置SetFrom电子邮件和名称的方法。需要帮助!
Question Value Key
0 Q008D02 1 Text 1
1 Q008D02 2 Text 2
2 Q008D02 3 Text 3
3 Q008D02 4 Text 4
4 Q008D03 1 Answer1
5 Q008D03 2 Answer2
6 Q008D03 3 Answer3
7 Q008D03 4 Answer4,Answer5
8 Q008D04 1 Check1
9 Q008D04 2 Check2,Check3
10 Q008D04 3 Check4
11 Q008D04 4 Check5,Check6,Check7
这是我设置的警报,显示发送到我的PHP脚本的所有POST参数。所有POST变量都在那里。 唯一的问题是SetFrom($ email,$ name)
答案 0 :(得分:1)
Gmail不允许您从地址设置任意内容,但您可以定义预设别名。
但是,无论如何,你都不应该尝试这样做。将用户提供的值放在发件人地址是一个非常糟糕的主意,因为您的邮件将因SPF检查而失败,因为它是伪造的。将您自己的地址放在发件人地址(以及地址)中,并使用addReplyTo()
方法将提交者的地址放入回复标题中。您可以在PHPMailer提供的联系表单示例中看到这个:
//Use a fixed address in your own domain as the from address
//**DO NOT** use the submitter's address here as it will be forgery
//and will cause your messages to fail SPF checks
$mail->setFrom('from@example.com', 'First Last');
//Send the message to yourself, or whoever should receive contact for submissions
$mail->addAddress('whoto@example.com', 'John Doe');
//Put the submitter's address in a reply-to header
//This will fail if the address provided is invalid,
//in which case we should ignore the whole request
if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
...