Swiftmailer won't send mail, but mail() will

妖精的绣舞 提交于 2019-12-23 15:08:26

问题


PHP's mail() function sends mail fine, but Swiftmailer's Swift_MailTransport doesn't work!

This works:

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

But this does not:

$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);

(The user@example.com is replaced by a valid email address in my test code.)

The mail logs for both events look very similar in both cases, and it appears that mail is being sent in the latter.

Could there be something about the message constructed by Swiftmailer that is causing it to be blocked by a spam filter?

(By the way, I have tried using the SMTP transport, with no luck; I figured that since mail() works correctly, it would be trivial to switch to Swiftmail's Mail transport...)


回答1:


Which mail server are you using(like your web server or gmail,yahoo..) this is for 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);

if mail() function works, then SwiftMailer should also work. Hope it worked for you, and helped you.



来源:https://stackoverflow.com/questions/3552937/swiftmailer-wont-send-mail-but-mail-will

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!