【问题标题】:Failed to send mail via php, must issue a STARTTLS command firstphp发送邮件失败,必须先发出STARTTLS命令
【发布时间】:2014-06-25 09:38:33
【问题描述】:

我正在尝试发送本地邮件,但它总是会产生此错误:Must issue a STARTTLS command first. 我试图找到解决方案,我发现这个网站显示了how to configure PHP under windows to use gmail or external STMP server,我按照每个步骤操作,但它总是产生相同的错误。我迷路了!!

有没有人遇到过这个问题? 非常感谢您的帮助...

【问题讨论】:

    标签: php smtp gmail


    【解决方案1】:

    从错误消息中,您尝试发送此消息的邮件服务器听起来需要在连接上使用 STARTTLS。 STARTTLS 是一种关闭类型的连接,最初以未加密方式启动,然后在连接期间切换到加密模式。如果您发送邮件的 PHP 脚本不支持 STARTTLS,并且您尝试发送邮件的邮件服务器需要 STARTTLS,那么您将收到此错误。

    要解决此问题,您可以执行以下操作之一:

    1) 编写 PHP 脚本以使用 STARTTLS 类型的连接连接到邮件服务器。我不确定您是否使用 PHPMailer,但如果您使用,PHPMailer 支持 STARTTLS(将 SMTPSecure 属性设置为 'tls')。

    2) 检查您尝试发送的邮件服务器是否允许在不同端口上使用不同类型的连接(例如纯文本或 SSL)。如果是这样,您可以更改您的 PHP 脚本以在该端口上使用该类型的连接进行连接。

    【讨论】:

    • 我不使用PHPMailer,只是一个简单的php脚本。确实,我需要使用 phpMailer?
    • 你可能想看看 phpmailer。它易于使用且易于设置 - 只需将几个 PHP 文件复制到您的服务器。见github.com/PHPMailer/PHPMailer。它也非常灵活 - 您可以使用任何类型的连接(例如纯文本、tls、ssl)在任何端口上通过远程 SMTP 服务器中继消息,并且它还可以轻松发送更复杂类型的带有附件的 MIME 消息, HTML格式等
    • 如果我不使用它,我想创建自己的脚本,有解决方案吗?...你知道,我使用 gmail 服务器,smtp.gmail.com 因为我想通过 php 发送本地邮件
    • 在这种情况下,您的 PHP 脚本必须使用 STARTTLS 连接到端口 587 上的 smtp.gmail.com,或者使用 SSL 连接到端口 465,并且它必须能够使用您的 gmail 用户名和密码进行 SMTP 身份验证.见support.google.com/mail/answer/13287?hl=en
    • 我使用这些配置,但我总是有同样的警告!也许,这种问题没有解决办法
    猜你喜欢
    • 2015-12-28
    • 2023-03-07
    • 2012-10-05
    • 1970-01-01
    • 2015-04-24
    • 2017-01-13
    • 2010-12-11
    • 1970-01-01
    • 2015-12-16
    相关资源
    最近更新 更多