2016-11-03 3 views
2

$ _REQUEST 온라인 양식 데이터 항목에 PHP 스크립트 (HTML 포함)를 작성하고 (1) CSV로 작성하여 첨부 파일로 이메일을 보내거나 (2) 모든 이메일 본문에 데이터가 포함됩니다.이메일에 CSV 첨부 파일과 본문 문자를 보내려고합니다.

그러나 나는 동시에 둘 다를 할 수 없습니다. CSV를 데이터베이스로 신속하게 가져오고 싶습니다. 전자 메일 본문에 세부 정보를 포함시켜 발송 부서에 포장을위한 선택 목록이 포함되도록하고 싶습니다. 서로 방해하지 않고 두 기능을 동시에 작동 시키려면 어떻게합니까?

미리 감사드립니다.

PHP 스크립트

 $to = "[email protected]"; 
     $subject = "Order - " . $_Tech_Name; 

     //Add the headers 
     $semi_rand = md5(time()); 
     $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

     $headers = "MIME-Version: 1.0\n" . 
        "From: {$email_from}\n" . 
        "Content-Type: multipart/mixed;\n" . 
        " boundary=\"{$mime_boundary}\""; 

     // email body includes only fields not null 
     $body = ""; 
     foreach ($_REQUEST as $Field=>$Value) { 
      if($Value != ''){ 
       $body .= "$Field: $Value\n\n"; 
      } 
     } 
     $email_body = "Here are the details: \n\n $body"; 

     // csv file name format 
     $today = date("m.d.y"); 
     $csv_name = "order - " . $_Tech_Name . " " . $today . ".csv"; 
     $fp = fopen($csv_name,'a'); 
     fwrite($fp,$data); 
     fclose($fp); 

     $attachments[] = Array(
      'data' => $data, 
      'name' => $csv_name, 
      'type' => 'application/vnd.ms-excel' 
     ); 

     //Add sttachments 
     foreach($attachments as $attachment){ 
      $data = chunk_split(base64_encode($attachment['data'])); 
      $name = $attachment['name']; 
      $type = $attachment['type']; 

      $message .= 
         "--{$mime_boundary}\n" . 
         "Content-Type: {$type};\n" . 
         " name=\"{$name}\"\n" . 
         "Content-Transfer-Encoding: base64\n\n" . 
         $data . "\n\n" ; 
     } 

** PHP 스크립트 - 내가 위의 스크립트의 일부는 다음과 같은 추가 스크립트로 문제를 격리, 그러나 그것이 왜 나는 아직 이해하지 못하는 문제. $ message (첨부 파일) 또는 $ email_body (본문) 중 하나를 주석 처리함으로써 나는 다른 하나를 작동시킬 수 있습니다. 내가 거기에 두 변수를 떠날 경우에, 다음 어느 작품 **

 mail(
      $to, 
      $subject, 
      $message,  // for attachment only 
     // $email_body, // for body only 
      $headers 
      ); 
+0

을 확인하십시오. http://stackoverflow.com/questions/5816421/send-csv-file-attached-to-the-email – Arun

답변

0

내 원래의 게시물에 문제를 분리하여 나는 다음과 같이 두 (2) "메일"명령을 작성하여 작동시킬 수 있었다 :

 // attachment 
     mail($to, $subject, $message, $headers); 

     // body 
     mail($to, $subject, $email_body, $headers); 

나는이 솔루션에 만족,하지만 누군가가 CSV를 본문 내용을 포함하고 첨부 할 같은 이메일을 얻을 수있는 방법을 찾을 수 있다면, 그 이상적 일 것이다.

관련 문제