Swift Mailer 电子邮件发送问题
我已经从他们的网站下载了 Swift Mailer 并尝试使用以下代码发送简单的电子邮件
<?php
require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25)
->setUsername('your username')
->setPassword('your password')
;
$mailer = Swift_Mailer::newInstance($transport);
//Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('[email protected]' => 'John Doe'))
->setTo(array('[email protected]', '[email protected]' => 'A name'))
->setBody('Here is the message itself')
;
//Send the message
$result = $mailer->send($message);
?>
一旦我运行页面,
Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php on line 233
Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.anyhost.com:25 (php_network_getaddresses: getaddrinfo failed: No such host is known. ) in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php on line 233
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.domain.com [php_network_getaddresses: getaddrinfo failed: No such host is known. #0]' in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php:235 Stack trace: #0 E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php(70): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 E:\web_sites\swift_mail\lib\classes\Swift\Transport\AbstractSmtpTransport.php(101): Swift_Transport_StreamBuffer->initialize(Array) #2 E:\web_sites\swift_mail\lib\classes\Swift\Mailer.php(74): Swift_Transport_AbstractSmtpTransport->start() #3 E:\web_sites\swift_mail\test.php(33): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php on line 235
如果我删除该行
$result = $mailer->send($message);
然后页面执行并且没有错误消息显示,它会给出错误,一旦我添加上面的行来发送电子邮件,我就会收到错误。
我的传出服务器、端口和用户 ID 以及我的文件中的密码是正确的。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它正在寻找服务器 smtp.domain.org 但无法解析它。
如果您查看堆栈交易中最后一步调用的行,您可以看到它抛出异常:
因此您需要输入有效的 smtp 服务器或将 send() 行包装在 try/catch 中以捕获异常要么将其记录在某处,要么忽略它
It's looking for the server smtp.domain.org but isn't able to resolve it.
If you look at the line the last step in the stack trade is calling, you can see it throwing an exception:
So you either need to input a valid smtp server or wrap the send() line in a try/catch to catch the exception and either log it somewhere or ignore it
这些错误告诉您需要了解的一切:
指定的 SMTP 服务器 (smtp.domain.org) 不存在,因此邮件程序脚本无法连接到它来发送电子邮件。至少domain.org域确实存在,所以也许他们已经将SMTP服务器命名为其他名称:
指定确实存在的其他某个SMTP主机,然后重试。
The errors tell you everything you need to know:
The specified SMTP server (smtp.domain.org) does not exist, so the mailer script can't connec to it to send the email. At least the domain.org domain DOES exist, so perhaps they've got the SMTP server named something else:
Specify some other SMTP host that DOES exist and try again.
请控制您使用的端口是否确实是您的邮件服务器使用的端口。我处理过类似的问题,最后发现我使用的是 yahoo 的端口 25,而不是 465。
Please control if the port you use is really the port used by your mail server. I have dealt with a similar problem and finally saw that I was using port 25 with yahoo instead of 465.