邮件已发送!但收件箱没有收到。 PHP -> 本地主机 -> XAMPP -> Web 服务器

Posted

技术标签:

【中文标题】邮件已发送!但收件箱没有收到。 PHP -> 本地主机 -> XAMPP -> Web 服务器【英文标题】:Email sent! But not received on inbox. PHP -> localhost -> XAMPP -> Web Server 【发布时间】:2012-04-24 10:06:15 【问题描述】:

这是我的配置文件。

发送邮件.ini

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=(Correct SMTP Server)

; smtp port (normally 25)

smtp_port=25

php.ini

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = (Correct SMTP Server)
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = (user@(server.com)) <- correct name

PHP 代码

<?php
$from_name = "testing";
$from_email = "myemail@something.com";
$headers = "From: $from_name <$from_email>";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$body = "Hi,\nThis is a test mail from $from_name <$from_email>.";
$subject = "Test mail from test";
$to = "myemail@something.com";

if (mail($to, $subject, $body, $headers)) 
  echo "success!";
 else 
  echo "fail…";

?>

当我运行代码时,它确实说电子邮件已发送,但是当我检查电子邮件时,没有任何东西可以接收...请帮助!谢谢,我会提供尽可能多的相关信息来解决这个问题。

【问题讨论】:

您是否将其发送到大型域(例如 gmail、aol、yahoo)?如果是这样发送邮件而不采取某些步骤(正确的 DNS,您的 IP 的非通用主机名)将增加您的垃圾邮件分数。另外,如果需要,您是否使用 SMTP 服务器进行身份验证? 您是否设置了 MX 记录? @drew 我将其发送到公司的 Microsoft Outlook 电子邮件。我没有通过 SMTP 服务器进行身份验证,因为它不需要任何身份验证用户和密码。 @blake 请原谅我缺乏知识先生,但是 MX 记录设置是什么? 【参考方案1】:

如果您在家中或小型办公室对此进行测试,那么您的 ISP 可能会阻止端口 25 上的出站流量。您的 PHP 不会失败,但您的消息将被阻止。您需要在另一个端口(例如 465 或 587)上连接到外部 SMTP 服务器。请访问您的 ISP 网站了解它们所允许的详细信息。

【讨论】:

抗拒,我尝试了 465 和 587 端口号。它不起作用,不,我不是在家里或小办公室进行测试。我目前在跨国公司工作。有没有其他方法可以解决这个问题?谢谢 好的最新更新:我使用自己的个人hotmail地址发送到公司的电子邮件并且它有效。反之亦然,我使用公司的电子邮件将“测试”发送到我的个人 hotmail 地址。这表明该公司没有阻止出站流量,现在可能是什么问题?任何人?谢谢!【参考方案2】:

如果您仔细观察,您会发现您的第二个 $header 变量缺少连接,因此,您没有发送可能导致邮件被拒绝的“From:”标头。

【讨论】:

以上是关于邮件已发送!但收件箱没有收到。 PHP -> 本地主机 -> XAMPP -> Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

PHP Gmail API:可以发送电子邮件但如何添加收件人电子邮件

发邮件自己的邮箱提示邮件已发送,为啥对方说没收到?

Pear PHP Mail 发送 CC 似乎不起作用

贝宝发送发票不发送电子邮件

使用 HTML 发送邮件 [重复]

电子邮件已发送,但未在收件箱中发送。它是在垃圾邮件中。为什么会这样?