我想发送一封包含XML作为内容的电子邮件。
我为这个名为xml_email.blade.php
的{{1}}创建了一个刀片视图,我将符合该电子邮件的变量传递给我们。
我的xml_email.blade.php
看起来像这样:
{{ '<'.'?'.'xml version="1.0" encoding="UTF-8"?>' }}
<customer>
<contact>
<name part="full">{{$customer->name}}</name>
@if($customer->allow_phone == true)
<phone>{{$customer->phone}}</phone>
@endif
<email>{{$customer->email}}</email>
</contact>
</customer>
我从控制器那样发送它
Mail::send('emails.xml_email', ['customer' => $customer], function($message){
$message->to("recipient@email.com", '')->subject('New Customer!');
});
发送的电子邮件不是XML格式,并且缺少所有标记。
有没有办法将电子邮件的Mime类型更改为text/xml
或者在发送时保留所有XML标记?
谢谢!
答案 0 :(得分:0)
转义XML,使其被视为文本。例如“&lt;”将是"<"
答案 1 :(得分:0)
您想要设置电子邮件的内容类型。
在Laravel中,$message
被记录为Swift_Message
(reference)的子类型,因此
$message->setContentType($contentType);
应该这样做。因此,将其设置为“text/xml
”可能已经这样做了,请参阅Swift_Mime_SimpleMimeEntity::setContentType
,这是Swift_Message
与方法实现的基础分析。