use*_*500 2 php email icalendar outlook laravel
我试图让Outlook识别电子邮件的.ics文件为适当的邀请。.ics日历邀请确实可以在Gmail中完美运行,而不仅仅是Outlook。通过阅读其他Stackoverflow帖子,我的猜测是我没有正确设置“ MIME”等,但是我不知道该怎么做(我是新手要发电子邮件)。
这是我的基本代码的一部分。
Mail::send($data['view'], $data['data'], function($message) use ($data) {
$message->from($from_email,$f_n)->to($to_email)->subject($data['subject']);
$message->attachData($data['ical'], 'invite.ics');
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试过类似的代码:
$message->setContentType("text/calendar;method=REQUEST;name=\"invite.ics\"");
$disp->addParameterizedHeader(
'Content-Disposition', 'x'
);
$disp = $message->getHeaders()->get('Content-Disposition');
$disp->setValue('attachment');
$disp->setParameter('filename', 'invite.ics');
Run Code Online (Sandbox Code Playgroud)
和
$message->setBody($data['ical'], 'text/calendar; charset="utf-8"; method=REQUEST');
Run Code Online (Sandbox Code Playgroud)
但到目前为止没有运气。我正在使用Laravel 5.5。
为了支持问题与.ics文件本身无关的想法,我尝试使用标准的Google日历生成的邀请.ics,当通过Google日历通过自动电子邮件发送时,它与Outlook兼容,但在我通过我的Mail :: send发送
在此先感谢您的任何建议!
我刚刚发现您可以将mime参数添加到attachData函数(按照https://laravel.com/docs/5.7/mail#attachments)-这对Outlook和Gmail均适用。好极了 :)
$message->attachData($data['ical'], 'invite.ics', [
'mime' => 'text/calendar;charset=UTF-8;method=REQUEST',
]);
Run Code Online (Sandbox Code Playgroud)