PHP邮件不发送电子邮件

时间:2014-06-26 19:40:40

标签: php email-attachments

我遇到了PHP mail函数的意外问题。该脚本将电子邮件发送到所有电子邮件地址,但不发送到我的域。

假设我发送电子邮件至nitinsoni@gmail.com已收到,但当我向nitin@mydomain.com发送电子邮件时,未收到该电子邮件。

我正在使用GoDaddy网络托管和PHP mail功能。 SMTP也无法在GoDaddy服务器上运行。

PHP代码如下:

<?php

$to      = 'nitin@mydomain.com';
//$to      = 'nitinsonitest@gmail.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: nitinsonitest@gmail.com' . "\r\n" .
    'Reply-To: nitinsonitest@gmail.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

$r  = mail($to, $subject, $message, $headers);
if($r) {
    echo 'mail sent';
}else {
    echo 'not sent';
}
die;

?>

通过PHPMailer发送的SMTP电子邮件也不起作用:

<?php
echo "<pre>";

//die('ada');
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer();
$mail->Host = "relay-hosting.secureserver.net"; // your SMTP Server
$mail->IsSMTP();
$mail->PORT = 465;
$mail->SMTPDebug=true;
$mail->SMTPAuth = true; // Auth Type
$mail->SMTPSecure = "ssl";
$mail->Username = "user@gmail.com";
$mail->Password = "password";
$mail->Sender = "user@gmail.com";
$mail->From = "user@gmail.com";
$mail->AddReplyTo("user@gmail.com");
$mail->FromName = "user ";
$mail->AddAddress("recepient@gmail.com");
$mail->IsHTML(true);
$mail->Subject = "Test subject";
$mail->Body='Test Subject';
$mail->WordWrap = 50;
if($mail->Send())
{
    echo"<script>alert('The Form has been posted ,Thank you');</script>"; 
}
else
{
    echo 'mail error';
}

1 个答案:

答案 0 :(得分:0)

  

假设我向nitinsoni@gmail.com发送了电子邮件,但收到的时间是   我发送电子邮件至nitin@mydomain.com未收到。

     

我正在使用GoDaddy网络托管和PHP mail功能。 SMTP也是   不在GoDaddy服务器上工作。

我怀疑这与使用mailPHPMailer时的编码有关。问题只是因为你发送邮件,并不意味着接收端认为邮件是有效的。并且机会是接收端 - 即使它是你的域 - 已经决定从随机服务器发送的随机电子邮件只是垃圾邮件。

我发布了a more detailed answer here,但是当谈到垃圾邮件时,它基本上归结为:您的域名是否有SPF (Sender Policy Framework)个记录设置?您是否也为该域设置了a PTR (reverse DNS) record

如果您没有SPF或PTR记录,则您的消息被标记为垃圾邮件的可能性非常高。

如果您认真对待从服务器发送邮件,则至少需要获取SPF记录。 PTR记录集。