通过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);

} ?>

谢谢

iCMS 回答:通过php邮件发送名称时,无法将名称设置为ics文件

我刚刚做到了, 我在下面粘贴代码,问题是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);
    
fclose($temp);
?>
本文链接:https://www.f2er.com/1788301.html

大家都在问