Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php mailer中将i日历作为邮件正文发送_Php_Laravel_Email_Phpmailer_Icalendar - Fatal编程技术网

在php mailer中将i日历作为邮件正文发送

在php mailer中将i日历作为邮件正文发送,php,laravel,email,phpmailer,icalendar,Php,Laravel,Email,Phpmailer,Icalendar,我使用php mailer向收件人发送邮件,我需要发送日历事件,我知道如何将它们作为附件发送,但我想在邮件正文中发送它们。可能吗 $message = "You have been invited to the online meeting '".$schedule->schedule_name. "', On ".$date." (".$start_time

我使用php mailer向收件人发送邮件,我需要发送日历事件,我知道如何将它们作为附件发送,但我想在邮件正文中发送它们。可能吗

$message = "You have been invited to the online meeting '".$schedule->schedule_name.
                                    "', On ".$date." (".$start_time."-".$end_time.") by Tuti.World \n
                                    (See attachments for more details)";

        $ical_content = "BEGIN:VCALENDAR
                                        VERSION:2.0
                                        PRODID://Drupal iCal API//EN
                                        BEGIN:VEVENT
                                        UID:http://www.icalmaker.com/event/d8fefcc9-a576-4432-8b20-40e90889affd
                                        DTSTAMP:".$date.
                                        "DTSTART:".$start_time.
                                        "DTEND:".$end_time.
                                        "SUMMARY:Online Meeting
                                        END:VEVENT
                                        END:VCALENDAR";



$mail->msgHTML($message);
$mail->addStringAttachment($ical_content,$file,'base64','text/calendar');
$mail->send();

这些是当前邮件正文和日历事件的代码块…

PHPMailer具有内置的iCal支持,它使用iCal支持在
多部分/备选结构中创建第三个
文本/日历部分。这是“RFC方式”,但不幸的是,iCal客户端一塌糊涂,在Outlook、Gmail和Apple Mail中,没有任何东西能始终如一地工作。最好的方法是使用标准结构,但也要添加与附件相同的数据(就像您已经在做的那样)。您需要在代码中进行的唯一更改是添加以下行:

$mail->Ical = $ical_content;

您还需要非常小心您的iCal内容-Outlook特别挑剔,最微小的错误都会导致它无法工作,因此我建议首先使用Outlook生成的iCal字符串进行测试,因此,您可以将iCal发送与任何其他与其中内容相关的问题隔离开来。

多年来,我一直在为活动使用phpmailer,而且它一直有效。我总是只对苹果有问题。对于IOS 13,我不得不等待4个月,等待他们修复它。现在14.4也出现了同样的问题,yes/no/maybe按钮不再显示,因此如果我从iphone插入事件,它将不会与outlook同步。反之亦然。如果我从iphone接受它,我会更新事件,当我从outlook接受它时,会自动在iphone上找到一个孤立的事件并进行更新,我认为这是因为id是唯一的。是frunstrante apple方面继续犯错误。

您的意思是要将iCal文件与内容内联吗?我不认为这是可能的。是的,我试图将I-cal添加到主体中,如果可能的话,I-cal不需要是文件。我以前没有使用过php mailer或iCal事件,所以我不知道它们的局限性。很高兴听到这个消息!如果这已回答了您的问题,请将此答案标记为该答案(单击其旁边的复选标记)。它不会在正文中插入校准事件,而是创建另一个附件,因此它仍然不会提供我的问题的答案。但是关于i-cal如何工作的提示非常有用哪种方法有效在很大程度上取决于您使用的客户端。有些使用多部分,有些需要附件。没有办法让它在所有客户机中都同样好地工作,而只拥有一个副本,因此您必须妥协。如果你想让它在所有客户机上运行,并且只有一份iCal数据,那么你现在要求的是不可能的。例如,google日历邀请在Apple Mail或Outlook中没有什么特别的功能,它们只有一个ics附件。同样,Outlook multiparts在Gmail或Apple Mail中也不起作用。ics附件始终是一个可行的后备方案。我能得到一个答案吗?如何在gmail和apple mail上发布一个附件?查看地址并向每个附件发送不同的格式。这不是一个很好的策略,因为你无法通过查看收件人的地址来判断他们在使用什么客户端——完全有可能在Outlook中阅读gmail.com邮件,在gmail中阅读Outlook.com邮件。我有office365和gmail两个账户,但我都是从Apple Mail上读的。