在我的网站上,我有一个小小的联系表单,使用PHP将邮件发送到我的个人电子邮件地址。 在表单中,我询问用户他的电子邮件地址。如果地址存在,脚本将完美运行,并将很快收到消息。但如果用户输入了错误的邮件地址,我将永远不会收到它。这是正常的吗?这是我的一小部分剧本......
/* Prepare Email Subject */
$email_subject = '[CONTACT FORM]' . "\t" . $title;
/* Prepare Email Message */
$email_message .= "Nom: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Telephone: ".clean_string($tel)."\n";
$email_message .= "Message: ".clean_string($msg)."\n";
/* Prepare Email Header */
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
/* Send Email and redirect */
mail($email_to, $email_subject, $email_message, $headers);
header ('location: /?status=success#contact');
我想感谢大家的答案。如果问题不够明确,我很抱歉,我希望我的英语是可以理解的(我是一个法国人)!
对于那些不明白我的问题的人:
在我的脚本中,我将用户的邮件地址放在邮件标题中。 如果用户给我一封有效的电子邮件,那么我会收到该消息,否则我不会。
不要担心变量,这只是我脚本的最后一部分,但我验证了所有这些。
当我说“只有地址存在”时,我真的很想表示,如果地址没有注册,或者域名不存在,它就不起作用。 在发送邮件之前,我通过应用正则表达式测试来验证地址是否“有效”。 如果我输入,例如:abcde@aeaefa.fr我将不会收到邮件。这就是为什么它很奇怪,邮件地址格式很好。
blue112,我要创建一个postmaster地址,然后用它来发送这些邮件。
答案 0 :(得分:1)
您不应该使用用户的邮件发送邮件。
最好的方法是使用"有效"和#34;来自"中使用的受信任的电子邮件标题字段。
另外,关于你的脚本,你可以将`mail``函数包装在if中,以便在发送过程中一切正常。
if (mail($email_to, $email_subject, $email_message, $headers))
{
header ('location: /?status=success#contact');
}
else
{
echo "Sending mail failed";
}
但是,这并不能保证邮件成功到达。
答案 1 :(得分:0)
由于如果他们输入了无效的地址,您很可能无法对电子邮件执行任何有用的操作,您应该检查电子邮件地址是否有效,对于您可以访问的用户有不同程度的烦恼获取此信息有效:
您还可以使您的邮件具有您拥有的静态发件人和回复地址,并在邮件的实际正文中包含用户输入的电子邮件地址,这可确保您实际收到电子邮件,即使他们可能已经提供了联系人形成垃圾邮件地址。