[英]Sending an i calendar as mail body in php mailer
我正在使用 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 支持,它用於在multipart/alternative
結構中創建第三個text/calendar
部分。 這是“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 無論如何都是唯一的。 繼續犯錯誤的是令人沮喪的蘋果方面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.