2014-12-03 124 views
0

在我的网站中,我有一点联系表单,它使用PHP将邮件发送到我的个人电子邮件地址。 在表格中,我要求用户提供他的电子邮件地址。如果地址存在,脚本完美地工作,并且会很快收到消息。但是,如果用户输入错误的邮件地址,我永远不会收到它。这是正常的吗?下面是一小片我的剧本......如果发件人邮件无效,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'); 

我要感谢大家的答案。如果问题不够清楚,我很抱歉,我希望我的英语可以理解(我是法国人)!

对于那些谁不明白什么是我的问题:

在我的剧本,我把用户的邮件ADRESS在邮件标题中。 如果用户给我一个有效的电子邮件,那么我会收到消息,否则我不会。

不要担心变量,这只是我脚本的最后部分,但我验证了所有这些变量。

当我说“只有当地址存在”,我真的很想表明,如果地址未注册,或者如果域不存在,它不起作用。 发送邮件之前,我通过应用Regex测试来验证地址是否“有效”。 如果我输入,例如:[email protected]我将不会收到邮件。这就是为什么它很奇怪,邮件地址格式很好。

blue112,我要创建一个邮局主管地址,并用它来发送这些邮件。

这里的接触形式,但不要垃圾邮件我:) My Website

+5

你应该检查邮件被当周围包裹的发送。如果(电子邮件($ EMAIL_TO .....){//当它发出执行},而且还要检查是否所有的变量实际上有一个值。同时检查是否生成了error_log中。 – Jordy 2014-12-03 15:11:01

+0

*“如果地址存在” * - 你的意思是,如果它是“有效”如果是这样,是的,它是正常的,也是应该的,否则你会得到从“电子邮件@榜样”的电子邮件,你就不能肯定这是否是“.NET”,或“。 .COM”或点什么。 – 2014-12-03 15:12:21

+0

好吧,我是唯一一个没有在这里抓的问题? – 2014-12-03 15:22:52

回答

1

你不应该使用用户的邮箱发送邮件。

  1. 这是不好的做法。你是那种盗用其身份
  2. 如果用户使用,例如,Gmail和你设置它的Gmail,因为他知道它永远不会发送电子邮件
  3. 他们都是伟大的机会,Gmail就不会信任你该邮件陷入垃圾邮箱

最好的方法是使用“有效”和可信的电子邮件在“from”标题字段中使用。

另外,关于您的脚本,您可以将`mail``函数包装在一个if中,以了解在发送过程中是否一切正常。

if (mail($email_to, $email_subject, $email_message, $headers)) 
{ 
    header ('location: /?status=success#contact'); 
} 
else 
{ 
    echo "Sending mail failed"; 
} 

但是,这为您提供了不用担心邮件成功到达的问题。

+0

几乎我所说的回复他原来的帖子。 是的,他应该使用PHPMailer或类似的东西。 – Jordy 2014-12-03 15:19:28

+0

这不回答OP的问题;这是一个很好的做法,当然,但是OP正在问一个具体的问题。 OP仅向我们展示了一部分代码,它使用了'clean_string()'函数,它包含代码以防止某人输入无效的电子邮件地址以及其他表单元素的其他好处。 – 2014-12-03 15:19:45

0

既然你最有可能的,如果他们输入了无效的地址实际上不能做任何与电子邮件有用的,你应该检查的电子邮件地址是有效的,也有不同程度的烦恼了,你可以去通过用户得到这个信息是有效的:

  • 使用正则表达式来匹配用户的电子邮件地址
  • ,要求确认他们的电子邮件,这捕获输入错误(有些烦恼)
  • 要求用户之前先注册他们可以使用联系表格(很大的烦恼)

你也可以让你的邮件有静态From和回复到您自己的地址,以及包括用户在邮件的实际体输入的电子邮件地址,这样可以确保你实际上得到的电子邮件,即使他们可能有给你的联系表格一个垃圾邮件地址。

+0

这不是真的,如果提交了一个匿名的建议或类似的东西,那么电子邮件将是不相关的。然后再一次,你不知道他在用什么,所以很难说。 – Jordy 2014-12-03 15:22:40