首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift Mailer错误

Swift Mailer错误
EN

Stack Overflow用户
提问于 2010-04-08 03:07:18
回答 2查看 10.3K关注 0票数 2

我正在使用以下代码发送一条消息:

代码语言:javascript
复制
try
{   
    require_once "lib/Swift.php";
    require_once "lib/Swift/Connection/SMTP.php";
    $smtp =& new Swift_Connection_SMTP("mail.somedomain.net", 587);
    $smtp->setUsername("username");
    $smtp->setpassword("password");
    $swift =& new Swift($smtp);

    //Create the sender from the details we've been given
    $sender =& new Swift_Address($email, $name);
    $message =& new Swift_Message("message title");

    $message->attach(new Swift_Message_Part("Hello"));

    //Try sending the email
    $sent = $swift->send($message, "$myEmail", $sender);
    //Disconnect from SMTP, we're done
    $swift->disconnect();

    if($sent)
    {
        print 'sent';

    }
    else 
    {
        print 'not sent';
    }

}

catch (Exception $e) 
{
    echo"$e";
}

问题是,它在我的本地服务器(我的xampp服务器)上工作得很好,但当文件上传到真正的服务器上时就不能工作了。

它抛出这个错误:

代码语言:javascript
复制
'The SMTP connection failed to start [mail.somedomain.net:587]: fsockopen returned Error Number 110 and Error String 'Connection timed out''

请告诉我该怎么做才能纠正这个错误。感谢您的阅读

EN

回答 2

Stack Overflow用户

发布于 2010-04-08 04:12:05

请确保smtp服务器域有效。尝试Trying它以确认响应。您还可以尝试跟踪路由,以查看是否有任何交换机返回慢响应。

票数 1
EN

Stack Overflow用户

发布于 2010-04-08 07:06:52

代码语言:javascript
复制
$smtp =& new Swift_Connection_SMTP("mail.somedomain.net", 587);

那是要连接的端口号'587‘吗?您为什么要尝试使用该端口,而不是普通的25端口?端口587 (提交)通常用于本地用户发送邮件。一旦您在远程web服务器上运行此脚本,它就不再是“本地”的,并且很可能已被防火墙关闭(或者邮件服务器没有在外部接口上侦听该端口)。

尝试切换到端口25,看看这是否有帮助。

更新:

连接被拒绝总比“连接超时”好。这至少意味着最初的数据包到达了某个地方,并被主动拒绝。Timed out意味着事情只是在途中被无声地丢弃了。

只有当max_execution_time脚本本身超过最大时间时,php才会发挥作用。如果是这种情况,您就不会收到swiftmailer错误,因为脚本将直接终止。

您的your服务器运行的是sendmail吗?将连接主机更改为'localhost‘,看看这是否有帮助。如果你只是想发一封电子邮件,那应该可以。您可能希望连接到远程SMTP服务器的唯一原因是要正确设置From:标头,并且不可能在接收端将其标记为垃圾邮件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2595153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档