【问题标题】:Why does the mail function stop the php script instead of sending the mail?为什么邮件功能停止php脚本而不是发送邮件?
【发布时间】:2020-02-09 12:02:40
【问题描述】:

我正在尝试调用邮件函数,但是每当我将其放入脚本中时,页面都不会加载。

我在 XAMPP 中的 php.ini 文件有以下代码:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=80
auth_username = XX_MYEMAIL_XX
auth_password = XXXXX_MYPASSWORD_XX

我有一台 64 位计算机,但一条错误消息说它缺少一个 sendmail_from,所以我给这个变量一个值。我有从 XAMPP 运行的 Mercury,但我不知道我是否配置了任何需要配置的东西。

我收到以下错误

mail(): 无法在“localhost”端口 80 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()

我使用了以下php代码:

<?php     
$header = "From: varunsingh87@yahoo.com";
$to_email = 'VSpoet49@gmail.com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
if (mail($to_email, $subject, $message)) {
 echo "<p>Email sent!</p>";
} else {
 echo "<p>Email not sent.</p>";
}
?>

下面是默认的 html 标签。


更新

我删除了sendmail_from 并将smtp_port 设置为25。

mail(): 错误消息返回路径 i


相关

【问题讨论】:

  • 您没有在本地主机上运行邮件守护进程。
  • @Barmar 究竟什么是守护进程?
  • 错误提示无法连接到端口。因此,请确保您的邮件服务器(即守护程序)在端口 80 上运行并侦听。虽然在端口 80 上运行 SMTP 有点奇怪……但 80 通常默认为 http。
  • @Nic3500 你是对的。我更新了。

标签: php email smtp localhost


【解决方案1】:

首先,我从来没有听说过邮件服务器监听 80 端口。 我也安装了 XAMPP,但配置了“smpt_port=25”。

其次,您有“SMTP=localhost”,因此为了发送电子邮件,您必须在您的机器上安装邮件服务器,例如 XAMPP 包中的“Mercury”。

第三,使用“mail()”函数(身份验证、垃圾邮件检测......)正确发送电子邮件可能非常棘手,因此最好的解决方案是避免使用“mail()”函数并使用一些强大的库/组件/脚本。

Baranix 建议学习如何使用 PhpMailer 或 SwiftMailer(我最喜欢的)并将它们配置为针对真实主机上配置良好的真实邮件服务器。

【讨论】:

  • 1.我更新了 2。我正在运行 Mercury,但我不知道我是否配置了它 3。我明白,但这并不意味着 mail() 函数不应该工作,对吧?
  • 对不起,我从未使用过 Mercury。如果“SMTP”和“smtp_port”设置不正确,“mail()”函数将不起作用,邮件服务器必须在该位置并监听该端口。
【解决方案2】:

了解如何使用 PhpMailer,不要乱用这个尴尬的邮件功能。

https://github.com/PHPMailer/PHPMailer/wiki/Tutorial

通过本课程,您将发送所有经过授权和未经授权的消息,包含或不包含 tls/ssl 和附件(文件、图像)。

!!!安装 smtp 服务器:首先在 localhost 上安装 hmailserver !!!

https://www.hmailserver.com/download

并创建您的域电子邮件邮箱。

问候

【讨论】:

    【解决方案3】:

    http://php.net/manual/language.operators.errorcontrol.php

    让我们了解@ 符号,但请注意可能存在虚假退货状态。

    人们通常会先尝试这个

    Try Catch Block

    【讨论】:

    • 这跟我的问题有什么关系?
    • 没关系,但这根本不是我要找的。​​span>
    • 我知道,但是我不使用内部邮件功能。拥有完整的代码更为重要。此函数引发未捕获的错误。我会尽力解决问题。
    • 我的整个问题都是关于成功发送电子邮件...
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 2011-08-19
    • 2016-04-02
    • 2011-09-16
    • 2014-05-23
    • 1970-01-01
    • 2016-05-22
    • 2010-10-19
    相关资源
    最近更新 更多