email
  • php
  • webmail
  • 2013-05-06 37 views 3 likes 
    3

    我在网站上有一个联系表单,如果您提交它将发送到网络邮箱。 示例:PHP无法发送邮件到网络邮箱

    $isi_pesan = $message; 
        $additional_headers = "From: ".$email."" . "\r\n" . "Reply-To: $email"; 
        $subject = 'Pesan untuk engineering.co.id'; 
    
        $to = '[email protected]'; 
    // $to = '[email protected]'; //this works 
    
        if(mail($to, $subject, $isi_pesan, $additional_headers)) 
         echo '<div class="success-msg">Success !</div>'; 
        else 
         echo '<div class="error-msg">Failed !</div>'; 
    

    我得到的消息是“成功!”但是我在收件箱webmail中没有任何东西。如果$ to不是网络邮件,PHP邮件就可以工作。所以我必须改变什么设置才能让邮件在webmail中工作?提前致谢。

    +0

    'mail()'函数通常在Linux服务器上使用sendmail。请检查你的服务器是否有邮件设置[配置](http://php.net/manual/en/mail.configuration.php)。如果没有,您可以使用[PHPMailer](http://phpmailer.worxware.com/)与任何SMTP或POP3。 – user1190992 2013-05-06 18:03:34

    回答

    2

    如果这是你确切的代码,那么你就覆盖第一个解决与第二的位置:

    $to = '[email protected]'; 
    $to = '[email protected]'; //this works 
    

    如果您想发送到两个,那么你需要做的是这样的:

    $to = '[email protected], [email protected]'; 
    
    +0

    我刚刚看到您的修改以将第二个$赋值给赋值。在这种情况下,您可能需要按照Marc B所建议的顺序进一步查看该行。 – Phylogenesis 2013-05-06 17:38:50

    3

    你看过SPAM文件夹吗? 看看这个PHP类

    https://github.com/Synchro/PHPMailer

    $mail = new PHPMailer; 
    
    $mail->From = '[email protected]'; 
    $mail->FromName = 'Mailer'; 
    $mail->AddAddress('[email protected]');    // Name is optional 
    $mail->IsHTML(true);         // Set email format to HTML 
    
    $mail->Subject = 'Here is the subject'; 
    $mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 
    
    if(!$mail->Send()) { 
        echo 'Message could not be sent.'; 
        echo 'Mailer Error: ' . $mail->ErrorInfo; 
        exit; 
    } 
    
    echo 'Message has been sent'; 
    
    +0

    我试过了您的建议,但在webmail中仍然没有留言:(如何检查邮件是否已发送至垃圾邮件文件夹? – 2013-05-06 17:53:23

    +0

    您使用Gmail或您的域名的电子邮件? – 2013-05-06 18:00:58

    +0

    我设置$ mail->从基于在联系表格中提交的电子邮件和$ mail-> AddAddress我设置它到我的域名电子邮件 – 2013-05-06 18:10:04

    3

    PHP本身不提供邮件。它只是将它交给本地邮件传递系统。因此请检查您的传出邮件服务器的日志。也许该电子邮件被拒绝为垃圾邮件。也许它已经延迟了灰名单,等等......

    通俗地说,PHP的mail()等同于走下块并将一封信放入邮箱。一旦这封信出现在框中,PHP的工作就完成了,它会报告真实的。然后邮局必须拿起这封信,将其送到分拣工厂,然后将其发送(飞机卡车?船?)。在目的地的邮局必须接受交付,做更多的分类,把信放到卡车里,放在别人的邮箱等等......

    在事物的宏伟计划中,PHP的mail()函数确实大约是邮件发送过程的0.1%,并且你已经证明它是成功的。因此,开始分析其他99.9%,找出问题所在。

    +0

    谢谢你的答复,我试图找出发生了什么..如何检查邮件服务器的日志? – 2013-05-06 17:49:02

    0

    在Microsoft Outlook中配置您的webmail。现在您将收到联系表格中的邮件。 它为我工作。 ; p

    相关问题