【问题标题】:PHP mail not send emailsPHP邮件不发送电子邮件
【发布时间】:2014-08-17 19:09:03
【问题描述】:

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

假设我向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';
}

【问题讨论】:

  • 您是否收到任何错误消息?
  • 是的,当我尝试连接 SMTP 时,它会提示 smtp 连接失败。表示未连接到 smtp 服务器。所以,我正在使用 php 邮件功能。
  • 你确定你有正确的Host吗?会不会是smtpout.secureserver.net

标签: php email-attachments


【解决方案1】:

假设我向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 记录集。

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多