1

我想使用 php 基础库发送一封带有两个附件的邮件。

到目前为止我用这个

while($donnee = $reponse->fetch()){
$mime_boundary = md5(uniqid(time()));

$message = "message text";

$to = $donnee["MAIL"]; 
//define the subject of the email 
$subject = "title";; 
//create a boundary string. It must be unique 
//so we use the MD5 algorithm to generate a random hash 
$random_hash = md5(date('r', time())); 

 // from
$header = "From : sender-mail \r\nReply-To: sender-mail \r\n";
$header .= "MIME-Version:1.0\r\n";
$header .= "Content-Type:multipart/mixed; boundary=\"{$mime_boundary}\"\r\n\r\n";

// message
$header .= "--{$mime_boundary}\r\n";
$header .= "Content-Type:text/html; charset=\"ISO-8859-1\"\r\n";
$header .= "Content-Transfer-Encoding:7bit\r\n\r\n";
$header .= "<html><head><style type=\"text/css\">body { font:10pt Arial; }</style></head><body>". str_replace("\r", "", str_replace("\n", "<br />", $message)) ."</body></html>\r\n\r\n";

// attachment
$attachments = array("../fichier/downloadable/cv.docx","../fichier/downloadable/resume.pdf");
$attachmentNames = array("Covering_Letter_Anthony_Pifarré.docx","CV_Anthony_Pifarré.pdf");
for ($i = 0; $i < count($attachments); $i++)
{
    if (!base64_decode($attachments[$i], true))
        $attachments[$i] = base64_encode($attachments[$i]);
    else
        $attachments[$i] = str_replace("\r", "", str_replace("\n", "", str_replace(" ", "+", $attachments[$i])));

    $header .= "--{$mime_boundary}\r\n";
    $header .= "Content-Type:application/octet-stream; name=\"{$attachmentNames[$i]}\"\r\n";
    $header .= "Content-Transfer-Encoding:binary\r\n";
    $header .= "Content-Disposition:attachment; filename=\"{$attachmentNames[$i]}\"\r\n";
    $header .= "{$attachments[$i]}\r\n\r\n";
}

//send the email 
mail( $to, $subject, "", $header );

$requ = 'UPDATE mailing_list SET ALREADY_SENT = 1 WHERE ID = "'.$donnee["ID"].'"';
//$bdd->exec($requ);

echo "<br/>"."Sent To : ".$donnee["MAIL"];
$counter++;}

这会向我发送一封包含正确短信的电子邮件,发件人姓名可以。但附件是空的。我得到了两个名称正确但权重为 0ko 的文件。当我尝试编写 $attachements[$i] 时,我得到了一些文本,而不是什么都没有。

任何想法?

4

0 回答 0