Swiftmailer不会发送邮件,但mail()会发送

时间:2010-08-24 01:23:41

标签: email exchange-server spam swiftmailer

PHP的mail()函数发送邮件很好,但Swiftmailer的Swift_MailTransport不起作用!

这有效:

mail('user@example.com', 'test '.date('H:i:s'), '');

但这不是:

$transport = Swift_MailTransport::newInstance('');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('test '.date('H:i:s'))
  ->setFrom('user@example.com')
  ->setTo('user@example.com')
  ->setBody('Testing one two three');
$result = $mailer->send($message);

(我的测试代码中的user@example.com被有效的电子邮件地址替换。)

这两个事件的邮件日志在两种情况下都非常相似,并且邮件似乎是在后者中发送的。

Swiftmailer构建的消息是否会导致垃圾邮件过滤器阻止它?

(顺便说一下,我尝试过使用SMTP传输,没有运气;我认为,由于mail()工作正常,切换到Swiftmail的Mail传输是微不足道的。)

1 个答案:

答案 0 :(得分:-3)

您使用的是哪个邮件服务器(例如您的网络服务器或gmail,雅虎......) 这是针对gmail SMTP的,

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
          ->setUsername($login_id)
          ->setPassword($password)
          ;
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('test '.date('H:i:s'))
          ->setFrom('user@example.com')
          ->setTo('user@example.com')
          ->setBody('Testing one two three');
$result = $mailer->send($message);

如果mail()函数有效,那么SwiftMailer也应该可以工作。 希望它对你有用,并帮助你。