4

我刚开始学习如何使用SwiftMailer,但无法从本地主机发送简单的测试消息。下面是我尝试使用的代码。

//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My subject');
$message->setFrom(array('noreply@domain.com' => 'No Reply'));
$message->setTo(array('myemail@domain.com' => 'My Name'));

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25);
//Supposed to allow local domain sending to work from what I read
$transport->setLocalDomain('[127.0.0.1]');

$mailer = Swift_Mailer::newInstance($transport);
//Send the message
$result = $mailer->send($message);

这是我的错误信息的一部分,

Warning:  fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]:php_network_getaddresses: getaddrinfo failed: Name or service not known in /path/Swift/Transport/StreamBuffer.php

更新

我让它使用gmail工作。我将 Swift_SmtpTransport 行更改为以下内容,

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('username')->setPassword('password');
4

1 回答 1

6

localhost是当前机器的别名(在这种情况下,运行 PHP 的机器)。如果您真的想使用 localhost 发送邮件,您可以这样说:

$transport = Swift_SmtpTransport::newInstance('localhost', 25);

...但您还需要安装和配置您自己的邮件服务器。如果您不知道这是怎么回事,我建议您使用您的邮件提供商的 SMTP 服务器。

于 2010-12-19T23:23:29.087 回答