php mail function error -> Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must

Posted

技术标签:

【中文标题】php mail function error -> Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first【英文标题】: 【发布时间】:2013-12-15 14:36:33 【问题描述】:

我正在尝试将电子邮件从 php 发送到 gmail 帐户。我的笔记本电脑上有以下设置:

    Windows 8 互联网连接 XAMPP 1.7.4,PHP 版本 5.3.5,

我有以下 php.ini 设置

[邮件功能] ;仅适用于 Win32。 ; http://php.net/smtp SMTP = smtp.gmail.com; http://php.net/smtp-port

smtp_port = :465

;仅适用于 Win32。 ; http://php.net/sendmail-from ;sendmail_from = postmaster@localhost

;仅适用于 Unix。您也可以提供参数(默认值:“sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

以下是php代码:

<?php

$to = 'goodmandiamont@gmail.com';
$subject = 'hi';
$msg = 'Test';
$headers = 'From: postmaster@localhost' ."\r\n" .
            'Reply-To: shawn.danisa@gmail.com' . "\r\n" .
            'X-Mailer: PHP /' . phpversion();
mail($to, $subject,$msg,$headers);

?>

我收到以下错误:

警告:mail() [function.mail]:SMTP 服务器响应:530 5.7.0 必须先发出 STARTTLS 命令。

我还确保在 gmail 设置中启用了 IMAP 设置。我还检查了是否会在 php.ini 文件中找到以下行:

ini_set("SMTP","ssl://smtp.gmail.com");

ini_set("smtp_port","465");

但没有运气,我只是无法在任何地方找到它们。请帮忙,我是php新手。

【问题讨论】:

【参考方案1】:

首先,确保您的 PHP 安装支持 SSL(在 phpinfo() 的输出中查找“openssl”部分)。

再次,您需要在 PHP 配置 PHP.ini 中设置以下设置

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");

希望这能解决您的问题。

【讨论】:

以上是关于php mail function error -> Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must 的主要内容,如果未能解决你的问题,请参考以下文章

7.用邮件发送错误日志

警告:mail() [function.mail]:无法连接到邮件服务器

警告:mail() [function.mail]:无法在“localhost”端口 25 连接到邮件服务器

“POST /mail.php”错误(404):“未找到”

通过PHP发送邮件

本地主机上的 php mail() 函数