0

我的一个网站上有一个非常简单的 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!"; 
        } 
    }   
?> 

如果它根本不起作用,我会知道存在语法错误,但我收到“电子邮件已发送!” 确认。

4

2 回答 2

2

在邮件函数中添加 if 语句:

if( mail("myemailaddress@me.com", $subject, $message, $from)) echo "Email sent!";
else echo "failed" ;

这样你就知道它是否被发送了。

然后开始检查问题。

你检查你的 php.ini 文件:

检查 sendmail_from = ''; 发送邮件路径 = '';

并用所需的数据填充它们......也许某些地址不接受标题中没有完整数据的电子邮件。也许他们发现它是垃圾邮件或其他东西。

于 2013-10-23T13:16:05.073 回答
0

只需查看您使用邮件的 else 部分。就在下方是回显,因此它总是在进入 else 块时立即执行。因此,通过 if & else 条件检查邮件,然后相应地显示按摩

于 2013-10-23T13:18:40.627 回答