PHP - 使用SwiftMailer通过gmail SMTP发送邮件时出现问题

时间:2014-11-20 23:41:36

标签: php email smtp swiftmailer

我正在处理表单:提交表单后,我需要使用Gmail帐户发送邮件。我已经设置了SwiftMailer,似乎所有东西都设置正确,但没有任何反应。 我已将表单的“动作”设置为此php文件:

    <?php
    require_once '/assets/swift-mailer/lib/swift_required.php';

    // variables
    $visitor_email = $_POST['email'];
    $visitor_phone = $_POST['phone'];
    $visitor_page = $_POST['site'];


    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
      ->setUsername('mail@gmail.com')
      ->setPassword('mypassword');

    $mailer = Swift_Mailer::newInstance($transport);

    $message = Swift_Message::newInstance('New submission')
      ->setFrom('mail@gmail.com')
      ->setTo('myothermail@domain.com')
      ->setBody("New submission from this site: \n
               $visitor_page \n
               e-mail address: $visitor_email \n
               phone number: $visitor_phone");

    $result = $mailer->send($message);
    ?>

我已经仔细检查了PHP的版本,它在服务器中没问题。 Php_openssl已启用。 服务器正常运行。 html文件中的表单没问题,它有“method = post”关联。库已正确放置在服务器文件夹中。我真的不明白什么是错的。

1 个答案:

答案 0 :(得分:2)

也许有很多理由不发送邮件...你想检查apache error_log和浏览器网络..或者你可以在你的脚本中设置error_reporting(E_ALL)。也许是谷歌smtp问题或其他。首先你必须做你的问题澄清之后,你可以做任何事情。如果你上传你的错误,那么任何人都可以帮助你。

你可以尝试这个,但我不确定它对你有用吗<​​/ p>

   $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls');

而不是

    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl");