通过 php 邮件发送时无法为 ics 文件设置名称

当我使用 mail() 函数发送文件时,我试图设置文件的名称,我发送了它,但在 gmail 中我收到的是没有扩展名的无名文件。


有人可以帮我吗?


<?php



$temp = tmpfile();


fwrite($temp, $ical);

rewind($temp);

$to_email = 'test@gmail.com';

$subject = 'Testing PHP Mail';

$message = 'Hola caracola';

$from_email = 'test@test.com';

$path = stream_get_meta_data($temp)['uri'];

$num = md5(time());


$headers = "MIME-Version: 1.0\r\n"; // Defining the MIME version 

$headers .= "From:".$from_email."\r\n"; // Sender Email 

$headers .= "Reply-To: ".$from_email."\r\n"; // Email addrress to reach back 

$headers .= "Content-Type: multipart/mixed;\r\n"; // Defining Content-Type 


$body ="Content-Type: text/calendar; name=invite.ics\r\n"; 

$body .="Content-Disposition: attachment; filename=\"invite.ics\"\r\n";  

$body .= $content; // Attaching the encoded file with email 

    

mail($to_email,$subject,$body,$headers);

    

fclose($temp);

} ?>


谢谢


千万里不及你
浏览 63回答 1
1回答

牛魔王的故事

我刚刚做到了,我粘贴了下面的代码,问题是 php 将新策略应用于新行标题,所以我只需更改一些代码即可避免此限制并解决问题:<?php$temp = tmpfile();fwrite($temp, $ical);rewind($temp);$to_email = 'test@gmail.com';$subject = 'Testing PHP Mail';$message = 'Hello';$from_email = 'test@test.com';$path = stream_get_meta_data($temp)['uri'];$eol = PHP_EOL;$filename = "invite.ics";$mailto = $to_email;$from_mail = $from_email;$from_name = "Events";$replyto = $from_email;$file = $path;$file_size = filesize($path);$handle = fopen($file, "r");$content = fread($handle, $file_size);fclose($handle);$content = chunk_split(base64_encode($content));$uid = md5(uniqid(time()));$header = "From: ".$from_name." <".$from_mail.">".$eol;$header .= "Reply-To: ".$replyto.$eol;$header .= "MIME-Version: 1.0\r\n";$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"";$message = "--".$uid.$eol;$message .= "Content-Type: application/pdf; name=\"".$filename."\"".$eol; // use different content types here$message .= "Content-Transfer-Encoding: base64".$eol;$message .= "Content-Disposition: attachment; filename=\"".$filename."\"".$eol;$message .= $content.$eol;$message .= "--".$uid."--";mail($mailto, $subject, $message, $header);&nbsp; &nbsp;&nbsp;fclose($temp);?>
打开App,查看更多内容
随时随地看视频慕课网APP