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('987654321@**.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每行代码前不能有空格!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35014042/article/details/84952852