0

所以我正在尝试设置 swift mailer 以使用 Mandrill API,但它不断抛出以下错误:

Failures:Array ( [0] => example@email.com ) (我的代码中的这个地方有一个正确的电子邮件)

我的代码如下:

        $subject = 'Hello from Mandrill, PHP!';
    // approved domains only!
    $from = array('example2@email.com' =>'Your Name');
    $to = array(
     'example@email.com'  => 'Recipient1 Name'
    );

    $text = "Mandrill speaks plaintext";
    $html = "Mandrill speaks HTML";

    $transport = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 587);
    $transport->setUsername(getenv('my@mandrillemail.com'));
    $transport->setPassword(getenv('mymandrillpass'));
    $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');

    // Pass a variable name to the send() method
    if (!$swift->send($message, $failures))
    {
      echo "Failures:";
      print_r($failures);
    }

出了什么问题?

4

3 回答 3

2

尝试使用 SSL 和端口 465。

$xport = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 465, 'ssl');
$xport->setUsername('mandrilluser')
      ->setPassword('mandrillpass');

看看这是否适合你。

于 2012-08-10T01:57:47.037 回答
1

我的问题最终是我不得不从使用实际的 Mandrill 帐户密码更改为 ->setPassword() 变量中的 API。

于 2012-08-10T14:13:55.723 回答
1

由于这纯粹是您的凭据错误,请交叉检查您使用的密码是否实际上是 Mandrill 生成的令牌。

密码并不意味着您帐户的“密码”!

于 2013-06-18T18:57:01.260 回答