我正在使用PHP的mail()函数并注意到我的邮件是通过我的收件箱中的“我的网站”发送的,但当我点击实际的电子邮件时,它显示它是从mywebsite @ sitename发送的。 LOCALDOMAIN。
理想情况下,我想说它是从“我的网站”发送的,但是回复电子邮件是“no-reply@mywebsite.com”,而不是要对@ sitename.localdomain说些什么。
$to = trim(strtolower($_POST['to']));
$from = trim($_POST['from']);
$message = trim($_POST['message']);
$subject = $from . ' has shared a link with you';
$headers = 'From: My Website' . "\r\n" .
'Reply-To:' . $to . "\r\n" .
'X-Mailer: PHP/';
mail($to, $subject, $message, $headers);
这是我需要在Apache中修复的问题,还是我可以在PHP中修改标头?
答案 0 :(得分:3)
试试这个:
$to = trim(strtolower($_POST['to']));
$from = trim($_POST['from']);
$message = trim($_POST['message']);
$subject = $from . ' has shared a link with you';
$headers = 'From: My Website <no-reply@mywebsite.com>' . "\r\n" . // <- change your email here
'Reply-To:' . $to . "\r\n" .
'X-Mailer: PHP/';
mail($to, $subject, $message, $headers);
答案 1 :(得分:1)
问题和答案#1包含严重的安全漏洞 -
$to = trim(strtolower($_POST['to']));
允许攻击者使用您的网站向任意垃圾邮件发送电子邮件,您的网站将被大多数搜索引擎阻止。 看到 https://www.owasp.org/index.php/Top_10_2010-A1
我的建议是