Swiftmailer 在分期后崩溃

Posted

技术标签:

【中文标题】Swiftmailer 在分期后崩溃【英文标题】:Swiftmailer breaks down after staging 【发布时间】:2015-11-18 21:12:34 【问题描述】:

我将为即将举行的活动带来(基于 Laravel 的)网站的最新信息。其中一部分是改进邮件功能,为此我决定将 Mandrill 的 SMTP 与 SwiftMailer 一起使用。在本地工作时一切正常。但是,由于我们将所有内容都推送到实时(嗯,测试,但与实时在同一台服务器上)暂存区域,因此不再发送任何邮件。

我在 php 中发出 send() 命令后,一切似乎都崩溃了。即使是简单的打印命令也无济于事。也没有报告错误,除非我去控制台查看,那里的请求返回 500 Internal Server Error,没有任何其他错误。

目前,这些是我仅用于测试的功能,它可以在本地完美发送,然后打印,但只是在暂存区出现白屏...

Route::any('test', function()

    testMail();
    //this print works perfectly locally but shows nothing on staging
    print ('boe');
);

function testMail()
$to         = array('private@email.address' => 'My Name');
$subject    = 'test mail';
$text       = "test mail hier";
$htmlTekst  = "<b>boe</b><i>spaghetti</i>";
$view = View::make('mailTemplate', 
    ['naam' => 'Jeroen Cuvelier', 
    'tekst' => $htmlTekst, 
    'username' => 'my email address', 
    'password' => 99999, 
    'siteUrl' => rootUrl(), 
    'header2' => '']);
$html = $view->render();
sendEmail($text, $html, $to, $subject, "", "");



function sendEmail($text, $html, $to, $subject, $attachment, $attachmentName)

    //$subject = 'Subject!';

    $from       = array('event@email.company' =>'Company event');

    /*
    SMTP-settings
    */
    $transport  = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 25);
    $transport->setUsername('MY_MANDRILL_USERNAME');
    $transport->setPassword('MY_MANDRILL_PASSWORD');
    $swift      = Swift_Mailer::newInstance($transport);

    $message    = new Swift_Message($subject);
    $message->setFrom($from);
    $message->setBody($html, 'text/html');
    $message->setTo($to);
    $message->addPart($text, 'text/plain');

    if ($attachment != "")
    
        $toAttach = Swift_Attachment::fromPath($attachment);
        if ($attachmentName!="")
        
            $toAttach->setFilename($attachmentName);
        
        $message->attach($toAttach);
    

    //neither of these messages print on staging
    if ($recipients = $swift->send($message, $failures))
    
     echo 'Message successfully sent!';
     else 
     echo "There was an error:\n";
     print_r($failures);
    

【问题讨论】:

【参考方案1】:

原来问题不在于 PHP 或我所做的任何事情。服务器只是不允许 SMTP 调用。打电话给托管公司解决了我的问题。

【讨论】:

以上是关于Swiftmailer 在分期后崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Silex + Swift Mailer 不工作

Swift Mailer 递送状态

Symfony 4.4 - Swift Mailer 安装失败

动态更改SwiftMailer中的smtp设置

使用 Swift Mailer、GMail 和 PHP 发送电子邮件,权限被拒绝错误

Yii2之mailer的使用