Php 无法使用邮件功能附加img文件

Php 无法使用邮件功能附加img文件,php,Php,我正在尝试附加一个带有HTML模板的图像,然后将其发送到用户的邮件地址。但我不知道为什么这段代码没有附加图像文件。它只发送一封没有附件的简单HTML邮件。我不想使用任何回购代码,这就是为什么我尝试使用邮件预定义函数来实现它 代码- function send_mail($to, $datas){ $from = 'nalin@comics.igsavers.com'; $fromName = 'Comics - '.$datas['safe_title'

我正在尝试附加一个带有HTML模板的图像,然后将其发送到用户的邮件地址。但我不知道为什么这段代码没有附加图像文件。它只发送一封没有附件的简单HTML邮件。我不想使用任何回购代码,这就是为什么我尝试使用邮件预定义函数来实现它

代码-

    function send_mail($to, $datas){
        $from = 'nalin@comics.igsavers.com'; 
        $fromName = 'Comics - '.$datas['safe_title']; 
        
        $subject = 'Comics - '.$datas['safe_title'];  
        
        $file = "https://www.comics.igsavers.com/assets/img/bg.jpg"; 
        echo $file;
        
        $htmlContent = ' 
        <h3>PHP Email with Attachment by CodexWorld</h3> 
        <p>This email is sent from the PHP script with attachment.</p> 
        '; 
     
         $headers = "From: $fromName"." <".$from.">"; 
    
         $semi_rand = md5(time());  
         $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";  
     
         $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 
     
         $message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" . 
         "Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n";  
     
    if(!empty($file) > 0){ 
        if(is_file($file)){ 
            $message .= "--{$mime_boundary}\n"; 
            $fp =    @fopen($file,"rb"); 
            $data =  @fread($fp,filesize($file)); 
     
            @fclose($fp); 
            $data = chunk_split(base64_encode($data)); 
            $message .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\n" .  
            "Content-Description: ".basename($file)."\n" . 
            "Content-Disposition: attachment;\n" . " filename=\"".basename($file)."\"; size=".filesize($file).";\n" .  
            "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; 
        } 
    } 
    $message .= "--{$mime_boundary}--"; 
    $returnpath = "-f" . $from; 
     
    // Send email 
    $mail = @mail($to, $subject, $message, $headers, $returnpath);  
     
    // Email sending status 
    echo $mail?"<h1>Email Sent Successfully!</h1>":"<h1>Email sending failed.</h1>"; 
    
       // echo "mail send success";

}
函数发送邮件($to$datas){
$fromnalin@comics.igsavers.com'; 
$fromName='Comics-'。$datas['safe_title'];
$subject='Comics-.$datas['safe_title'];
$file=”https://www.comics.igsavers.com/assets/img/bg.jpg"; 
echo$文件;
$htmlContent='1!'
PHP电子邮件及CodexWorld的附件
此电子邮件由PHP脚本和附件发送。

'; $headers=“From:$fromName”。”; $semi_rand=md5(time()); $mime_boundary=“==Multipart_boundary_x{$semi_rand}x”; $headers.=“\n时间版本:1.0\n”。“内容类型:多部分/混合;\n”。“边界=\”{$mime\U边界}\”; $message=“-->$mime\u boundary}\n.”内容类型:text/html;字符集=\“UTF-8\”\n。 “内容传输编码:7bit\n\n.$htmlContent.\n\n”; 如果(!empty($file)>0{ 如果(is_file($file)){ $message.=“--{$mime\u boundary}\n”; $fp=@fopen($file,“rb”); $data=@fread($fp,filesize($file)); @fclose($fp); $data=chunk_split(base64_encode($data)); $message.=“内容类型:应用程序/八位字节流;名称=\”.basename($file)。“\”\n”。 “内容描述:”.basename($file)。“\n”。 “内容处置:附件;\n”。“文件名=\”.basename($file)。“\”size=“.filesize($file)。”;\n”。 “内容传输编码:base64\n\n.$data.\n\n”; } } $message.=“--{$mime_boundary}--”; $returnpath=“-f”。$from; //发送电子邮件 $mail=@mail($to、$subject、$message、$headers、$returnpath); //电子邮件发送状态 echo$mail?“电子邮件发送成功!”:“电子邮件发送失败。”; //回显“邮件发送成功”; }
收到的邮件-



请使用附件功能$email->AddAttachment($file_to_attach,'NameOfFile.pdf')@Kashif OP没有使用PHPMailer@Kashif我不想使用外部图书馆如果你使用PHPMailer,你的生活会轻松得多。为什么使用它会成为一个问题?如今,在不使用库的情况下编写一个合理大小的应用程序就像决定在不使用任何工具或机械的情况下建造一座房子一样——也就是说,这需要花费太长时间,而且不需要realistic@ADyson我知道,但我想知道这是怎么回事。。。