1. 程式人生 > >PHPMailer傳送outlook日曆郵件踩過的坑

PHPMailer傳送outlook日曆郵件踩過的坑

 $mail=new PHPMailer();
        $startTime = "2018-12-18 16:00";
        $endTime = "2018-12-18 18:00";
        $inviteName = "這是一封郵件測試";
        $title = "這是一封郵件測試";
        $address = "會議室1";
        $content = "你好,這是一封郵件測試";
        $cal_msg ="BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ORGANIZER:MAILTO:"  . $inviteName . "
DTSTART:" .date('Ymd', strtotime($startTime)) ."T". date('His', strtotime($startTime)). "Z
DTEND:" .date('Ymd', strtotime($endTime)) ."T". date('His', strtotime($endTime)). "Z
UID:" . time() . rand(100000,999999) . "
LOCATION:".$address ."
TRANSP:OPAQUE
SEQUENCE:0
DTSTAMP:" .date('Ymd', time()) ."T". date('His', time()). "Z
CATEGORIES:Meeting
SUMMARY:" . $title . "
PRIORITY:5
X-MICROSOFT-CDO-IMPORTANCE:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT3D
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
BEGIN:VTIMEZONE
TZID:US/Central
END:VTIMEZONE
END:VEVENT
END:VCALENDAR";
        $mail->Ical = $cal_msg;
        $mail->AltBody = $cal_msg;
            // 設定郵件編碼
            $mail->setLanguage('zh_cn');
            $mail->SMTPDebug = 1;
            // 使用smtp鑑權方式傳送郵件
            $mail->isSMTP();
            // smtp需要鑑權 這個必須是true
            $mail->SMTPAuth = true;
            // 連結qq域名郵箱的伺服器地址
            $mail->Host = 'smtp.qq.com';
            // 設定使用ssl加密方式登入鑑權
            $mail->SMTPSecure = 'ssl';
            // 設定ssl連線smtp伺服器的遠端伺服器埠號
            $mail->Port = 465;
            // 設定傳送的郵件的編碼
            $mail->CharSet = 'UTF-8';
            // 設定發件人暱稱 顯示在收件人郵件的發件人郵箱地址前的發件人姓名
            $mail->FromName = '郵件傳送測試';
            // smtp登入的賬號 QQ郵箱即可
            $mail->Username = '
[email protected]
'; // smtp登入的密碼 使用生成的授權碼 $mail->Password = '********'; // 設定發件人郵箱地址 同登入賬號 $mail->From = '[email protected]'; // 郵件正文是否為html編碼 注意此處是一個方法 $mail->isHTML(true); // 設定收件人郵箱地址 $mail->addAddress('
[email protected]
**.com'); // 新增該郵件的主題 $mail->Subject = $content; // 新增郵件正文 $mail->Body = '<h1>郵件主題郵件傳送測試</h1>'; // 傳送郵件 返回狀態 $mail->send();

參考:

https://stackoverflow.com/questions/39597121/not-supported-calendar-message-with-php

版本
“php”: “^7.1.3”
“laravel/framework”: “5.7.*”
“phpmailer/phpmailer”: “^6.0”

注意
iCalendar每行程式碼前不能有空格!
在這裡插入圖片描述