簡體   English   中英

電子郵件表單根據附件發送多封郵件

[英]Email form sends multiple mails depending on attachments

因此,基本上我想要一個可以發送包含一幅或多幅圖片的消息的電子郵件系統,現在的問題是,當我上傳4張圖片時,該表單向我發送了4封電子郵件,其中包含相同的文本,但一次只能發送一張圖片。 我希望將它們全部添加為1個電子郵件的4個附件,而不是4個電子郵件的1個附件。

這是我的HTML:

<form id="upload" method="post" action="upload.php">
            <div id="drop">
                Onderwerp<br>
                <input name="txtSubject" type="text" id="txtSubject" /><br>

                Omschrijving<br>
                <textarea name="txtDescription" cols="30" rows="4" id="txtDescription"></textarea><br>

                Voeg afbeeldingen toe
                <input type="file" name="fileAttach" multiple accept="image/*;capture=camera" />

                <input type="submit" name="Submit" value="Send">
            </div>

            <ul>
                <!-- The file uploads will be shown here -->
            </ul>

        </form>

這是我的PHP:

<?
    $strTo = "email@email.com";
    $strSubject = $_POST["txtSubject"];
    $strMessage = nl2br($_POST["txtDescription"]);

    //*** Uniqid Session ***//
    $strSid = md5(uniqid(time()));

    $strHeader = "";
    $strHeader .= "From: ".$_POST["txtFormName"]."<".$_POST["txtFormEmail"].">\nReply-To: ".$_POST["txtFormEmail"]."";

    $strHeader .= "MIME-Version: 1.0\n";
    $strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";
    $strHeader .= "This is a multi-part message in MIME format.\n";

    $strHeader .= "--".$strSid."\n";
    $strHeader .= "Content-type: text/html; charset=utf-8\n";
    $strHeader .= "Content-Transfer-Encoding: 7bit\n\n";
    $strHeader .= $strMessage."\n\n";

    //*** Attachment ***//
    if($_FILES["fileAttach"]["name"] != "")
    {
        $strFilesName = $_FILES["fileAttach"]["name"];
        $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"]))); 
        $strHeader .= "--".$strSid."\n";
        $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; 
        $strHeader .= "Content-Transfer-Encoding: base64\n";
        $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";
        $strHeader .= $strContent."\n\n";
    }


    $flgSend = @mail($strTo,$strSubject,null,$strHeader);  // @ = No Show Error //

    if($flgSend)
    {
        echo "Mail send completed.";
    }
    else
    {
        echo "Cannot send mail.";
    }
?>

我對PHP不太滿意,我使用了多個圖片上傳器,並嘗試將其制作為郵件形式,這很有效..除了多個電子郵件發送部分。

任何幫助是極大的贊賞! :)

嘗試類似:

for($i=0;$i<count($_FILES["fileAttach"]["name"]);$i++)  
{  
if($_FILES["fileAttach"]["name"][$i] != "")  
{  
$strFilesName = $_FILES["fileAttach"]["name"][$i];  
$strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"][$i])));  
$strHeader .= "--".$strSid."\n";  
$strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";  
$strHeader .= "Content-Transfer-Encoding: base64\n";  
$strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";  
$strHeader .= $strContent."\n\n";  
}  
}  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM