【问题标题】:Calendar invite is received as ICS file in outlook - Laravel日历邀请在 Outlook 中作为 ICS 文件接收 - Laravel
【发布时间】:2017-07-12 10:30:07
【问题描述】:

我正在使用 Laravel 的邮件 API 发送日历邀请。

日历在 gmail 上看起来不错,但在 Outlook 上显示附件而不是正确的日历邀请。

Gmail 的输出:

在外观上,它似乎是一个附件:

我正在创建一个名为invite.ics 的文件,并将内容放入invite.ics 文件中,并在发送电子邮件时附加该文件。

$to = $row->to;
$subject = $row->subject;
$attachments = $row->attachment;
$cc = $row->cc;
$body = $row->body;
$calendar_invitation = $row->calendar_invitation;

\Mail::send(
'emailTemplates.dummy', 
['emailBody'=>$row->body],  
function(Message $message) use ($to,$subject,$attachments,$cc, $body, $calendar_invitation, $companyEmail)
{
    $message->from($companyEmail, '');
    $message->replyTo($companyEmail, 'Email Agent Evmeetings');
    $message->to($to, '')->subject($subject);
    $file = fopen("invite.ics","w");
    echo fwrite($file,$calendar_invitation);
    fclose($file);
    $message->attach('invite.ics', array('mime' => "text/calendar"));


});

【问题讨论】:

  • 你试过$message->attach('invite.ics', array('mime' => 'text/calendar; charset="utf-8"; method=REQUEST'));吗?
  • 我想我做到了,我会再试一次@alepeino
  • @alepeino 没用

标签: php laravel-5 outlook calendar


【解决方案1】:

我就是这样做的

$message->from($companyEmail, '');
$message->replyTo($companyEmail, 'Email Agent Evmeetings');
$message->to($to, '')->subject($subject);
$message->setBody($calendar_invitation, 'text/calendar; charset="utf-8"; method=REQUEST');
$message->addPart($body, "text/html");

在正文中添加日历并将mime类型更改为'text/calendar; charset="utf-8"; method=REQUEST'

并使用addPart($body, "text/html");方法在邮件中添加html正文。

完整代码:

        \Mail::send('emailTemplates.dummy', ['emailBody'=>$row->body],  function(Message $message) use ($to,$subject,$attachments,$cc, $body, $calendar_invitation, $companyEmail,$replyTo)
        {
            $message->from($companyEmail, trim(env("email_agent_name")));
            $message->replyTo($replyTo, trim(env("email_agent_email")));
            $message->to($to, '')->subject($subject);
            $message->setBody($calendar_invitation, 'text/calendar; charset="utf-8"; method=REQUEST');
            $message->addPart($body, "text/html");

            $attachments = unserialize($attachments);
            foreach($attachments as $attachment){
                if(file_exists(public_path()."/".$attachment['location'])){

                    $message->attach(public_path()."/".$attachment['location'], array('as'=>$attachment['name'].".".pathinfo(parse_url($attachment['location'])['path'], PATHINFO_EXTENSION),
                        'mime' => mime_content_type ( public_path()."/".$attachment['location']) ));
                }
            }
            $cc = unserialize($cc);
            foreach($cc as $anotherEmail){
                $message->cc($anotherEmail);
            }
        });

【讨论】:

  • 你的 $calendar_invitation 内容可以吗?
  • 你能分享一个完整的例子吗?
  • 为你更新了 Simon Fakir
  • 嗨,我能知道你的 $calendar_invitation 的格式吗?
  • @DanyalSandeelo 你从未发布过calendar_invitation的详细信息
猜你喜欢
  • 1970-01-01
  • 2021-07-26
  • 2015-11-29
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2020-03-14
  • 1970-01-01
相关资源
最近更新 更多