我在其中一个网站上有一个非常简单的php联系表单,问题是它在向某些地址发送电子邮件时无效。
它可以正常发送到我的Gmail地址,但它不适用于iCloud(@me.com)地址或我设置的其他特定于域的电子邮件。
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("myemailaddress@me.com", $subject, $message, $from);
echo "Email sent!";
}
}
?>
如果它根本不起作用,我知道有一个语法错误,但我收到了“发送电子邮件!”确认。
答案 0 :(得分:2)
将if语句添加到mail函数:
if( mail("myemailaddress@me.com", $subject, $message, $from)) echo "Email sent!";
else echo "failed" ;
这样你就会知道它是否被发送了。
然后开始检查问题。
你检查你的php.ini文件:
检查 sendmail_from =''; sendmail_path ='';
并用必要的数据填充它们......也许某些地址不接受标题中没有完整数据的电子邮件。也许他们发现它是垃圾邮件或其他东西。
答案 1 :(得分:0)
看看你正在使用邮件的其他部分。下面就是回声,所以它一进入else块就会被执行。所以,检查邮件是否&amp;否则条件,然后相应地显示按摩