PHPMailer SMTP错误:无法连接到SMTP主机

时间:2016-05-05 22:05:21

标签: email smtp phpmailer

PHPMailer出现奇怪问题,显示SMTP连接错误,如下所示。什么可能导致这个?它在我使用Gmail SMTP服务器时有效,并且还可以使用本地邮件功能。服务器上的Roundcube发送正常。它似乎只是PHPMailer。据我所知,所有设置都是正确的。它正在使用TLS,我尝试了不同的端口。正确的端口显示以下错误:

private static void EnumerateContentsInTargetDirectory(ref IPortableDeviceContent content, PortableDeviceFolder parent)
{
    // Get the properties of the object
    IPortableDeviceProperties properties;
    content.Properties(out properties);

    // Enumerate the items contained by the current object
    IEnumPortableDeviceObjectIDs objectIds;
    content.EnumObjects(0, parent.Id, null, out objectIds);

    uint fetched = 0;
    do
    {
        string objectId;

        objectIds.Next(1, out objectId, ref fetched);
        if (fetched > 0)
        {
            var currentObject = WrapObject(properties, objectId);

            if (currentObject is PortableDeviceFolder)
            {
                if (currentObject.Name.Equals("SD Card") || currentObject.Name.Equals("path") || currentObject.Name.Equals("to"))
                {
                    parent.Files.Add(currentObject);
                    EnumerateContentsInTargetDirectory(ref content, (PortableDeviceFolder)currentObject);
                }
                else if (currentObject.Name.Equals("directory"))
                {
                    parent.Files.Add(currentObject);
                    // This is the same original method of Christophe Geer.
                    EnumerateContents(ref content, (PortableDeviceFolder)currentObject);
                }
            }
        }
    } while (fetched > 0);

1 个答案:

答案 0 :(得分:0)

the troubleshooting guide中介绍了这一点。它在STARTTLS之后立即失败,这通常表明您的邮件服务器正在发布无效的SSL证书,该证书已过期,自签名或与主机名不匹配。真正的解决方案是修复证书,但指南告诉您如何禁用验证。

据推测,gmail正在运行,因为它没有破坏SSL配置,并且roundcube可能在没有TLS的情况下提交到localhost(通过mail()),因此它不会遇到问题。