SwiftMailer用动态内容破坏附件(使用mandrill)



如何从mandrill webhook中附加动态内容,并通过使用Swiftmailer和SMTP(mandrill)发送。

下面是我的代码:
<?php   
if(!isset($_POST['mandrill_events'])) {
echo 'A mandrill error occurred: Invalid mandrill_events';
exit;
}
// -------------- Receive --------------------------
$mail = array_pop(json_decode($_POST['mandrill_events']));

// ----------------- Send ----------------------------------------
include_once "swiftmailer-master/lib/swift_required.php";
$subject = $mail->msg->subject . " From " . $mail->msg->from_email;
$from = array('info@myDomain.ir' =>'myDomain');
$to = array(
  'myEmail@yahoo.com' => 'Hamed Gh'
);
$transport = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 25,tls);
$transport->setUsername('username');
$transport->setPassword('***********');
$swift = Swift_Mailer::newInstance($transport);
$message = new Swift_Message($subject);
$message->setFrom($from);
//I think there is a problem here!!
foreach ($mail->msg->attachments as $attachment) {
$myType = $attachment->type;
$myName = $attachment->name;
$myContent = $attachment->content;
$attachment = Swift_Attachment::newInstance()
      ->setFilename($myName)
      ->setContentType($myType)
      ->setBody($myContent)
      ;
$message->attach($attachment);
}
$body = $mail->msg->html;
$message->setBody($body, 'text/html');
$message->setTo($to);
$text = "Mandrill speaks plaintext";
$message->addPart($text, 'text/plain');
if($recipients = $swift->send($message, $failures) )
{
 echo 'Message successfully sent!';
} else {
 echo "There was an error:n";
 print_r($failures);
}
?>

我彻底搜索并阅读SwiftMailer文档,但我找不到解决我问题的方法。所有的附件在目的地都是腐败的!

Mandrill中附加文件的内容默认为Base64编码(参见。

所以在SwiftMailer中设置附件内容之前,需要对内容进行解码。

$myContent = base64_decode($attachment->content);

相关内容

  • 没有找到相关文章

最新更新