2015-01-06 2 views
1

기본적으로 하나 이상의 사진이있는 메시지를 보낼 수있는 전자 메일 시스템이 필요합니다. 문제는 내가 업로드 할 때 4 개의 사진을 업로드하면 양식에서 4 개의 전자 메일을 보냅니다. 한 번에 한 텍스트 씩하지만 한 장씩. 나는 그들 모두를 4 개의 이메일에 1 개의 첨부 파일이 아닌 1 개의 이메일에 4 개의 첨부 파일로 추가하기를 원합니다. 여기 전자 메일 양식 첨부 파일에 따라 여러 메일을 보냅니다.

내 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입니다 : 내가 PHP와 위대한 아니에요

<? 
    $strTo = "[email protected]"; 
    $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."; 
    } 
?> 

, 나는 여러 이미지 업 로더를 가져다로 만들려고 우편 양식, 작동하는 .. 여러 전자 메일 전송 부분을 제외하고.

도움을 주시면 대단히 감사하겠습니다. :) 같은

+0

사용가. 신속한 우편 발송자 – donald123

답변

0

시도 뭔가 : 당신이 메일 클래스 등을 사용하여 첨부 파일을 포함하는 ... 더 나은 방법 루프에 대한

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"; 
} 
} 
관련 문제