我正在尝试向用户发送icalendar,以便他们可以在Outlook中打开这些ics文件并保存约会。我正在使用的邮件是'phpmailer.php'。
问题是它在邮件正文中将hical格式作为html发送。这是我的代码
$text="
BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
CATEGORIES:MEETING
STATUS:TENTATIVE
DTSTART:".$startDateTime."
DTEND:".$endDateTime."
SUMMARY:Interview for the candidate".$cname."
DESCRIPTION:".$message."
CLASS:PRIVATE
END:VEVENT
END:VCALENDAR";
$mail->SetFrom('xxxxxx@yahoo.com', 'xxxx');
$mail->IsSMTP();
$mail->Host = "smtp.mail.yahoo.com";
$mail->SMTPAuth = true;
$mail->Username = 'xxxxxxxx@yahoo.com';
$mail->Password = 'xxxxx';
$mail->AddAddress($addresses[$i]);
$mail->Subject = "Interview schedule of Candidate";
$headers = "From: Sender\n";
$headers .= "Reply-To: xxxxxx@yahoo.com\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/calendar; method=REQUEST; charset=utf-8\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-class: urn:content-classes:calendarmessage\n";
$mail->Body=$body;
if(!$mail->Send($headers,$body))
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message sent!";
}
请告诉我我的代码有什么问题。 提前致谢
答案 0 :(得分:5)
以下解决方案对我有用:
$mail->Subject = $name;
$mail->Body = $description;
$mail->AltBody = $body; // in your case once more the $text string
$mail->Ical = $message; // ical format, in your case $text string
答案 1 :(得分:2)
您也可以尝试过:
$mail->IsHTML(FALSE);