2012-03-07 22 views
0

こんにちは皆さんは、管理者がテキストエリアにデータベース内のすべての電子メールを送信するニュースレタースクリプトを手に入れました。その電子メールへのpdfファイル、どんな助けもありがとう!ここでは、実際に電子メールを送信するコードは次のとおりです。電子メールに添付ファイルを追加するPHP mysql

平野は、メッセージ 件名とTEXTAREAは、このスクリプト

<?php 
include "connect.php"; 
$subject = stripslashes($_POST["subject"]); 
$plain = stripslashes($_POST["plain"]); 

$result = mysql_query("SELECT email FROM member"); 
$emails = array(); 
while ($row = mysql_fetch_row($result)) 
$emails[] = $row[0]; 
$subject = $_POST['subject']; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
$to = implode(", ", $emails); 

mail($to, $_POST['subject'], $_POST["plain"], $headers); 
?> 
<link rel="stylesheet" type="text/css" href="view.css" media="all"> 
<script type="text/javascript" src="view.js"></script> 
<form id='register' action='updateprofile.php' method='post' accept-charset='UTF-8'> 
<body id="main_body" > 

    <img id="top" src="top.png" alt=""> 
<div id="form_container"> 

<h1>Newsletter Sent</h1> 
    <form id="form_362567" class="appnitro" method="post" action=""> 
       <div class="form_description"> 
     <h2>&nbsp;Newsletter Sent</h2> 
     <p></p> 
    </div>      
     <ul > 

       <li class="section_break"> 

     <p></p> 
    </li>  <li id="li_2" > 
    <label class="description" for="email"> 
    <?php 
echo "Newsletter successfully sent, you will be redirected back to the member area in  5  seconds."; 
?> 
</form> 
     <div id="footer"> 
<meta http-equiv="refresh" content="5; URL=index.php"> 
    </div> 
</div> 
<img id="bottom" src="bottom.png" alt=""> 
</body> 
+0

非常に基本的な(弱い、遅い)mail()関数の使用をやめてください。 –

+0

私には問題ないと思われますか?それについて何が悪いですか?これは可能ですか – user1250526

+0

が可能ですが、機能には非常に制限された 'パワー'はありません。非常に基本的なメールを送信する人は誰もいません –

答えて

1

に検証するフォームにアップロード入力を追加する必要があります対象 ですSwiftMailer(http://swiftmailer.org/docs/messages.html)のようなライブラリを使用すると、添付ファイルを簡単に追加できます。

+0

これはPHPの通常の機能では不可能ですか? – user1250526

0

PEAR_mailは、PHP内蔵のメール機能の代わりに、シンプルでよくサポートされています。それはあなたが達成しようとしているもののMIMEエンコードと添付ファイルと優れたドキュメントをサポートしています。

+0

これはメールでは不可能ですか? – user1250526

0

あなたは私が添付ファイルを添付するのに長い時間前にこのコードを使用し、この

<?php 
      $fp = fopen('myfile.pdf','rb'); 
      $dt = fread($fp,filesize('myfile.pdf')); 

      $attachments[] = Array(
       'data' => $dt, 
       'name' => $name, 
       'type' => 'application/pdf' 
      ); 

       //Generate a boundary string 

      $semi_rand = md5(time()); 
      $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

      $emailcontent="<style type='text/css'> 
         body { 
          font-family: arial, Geneva, sans-serif; 
          font-size: 12px; 
         } 
         </style>"; 


      $subject = 'Subject'; 

      $my_message = 'My message'; 

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


       //Add a multipart boundary above the plain message 


      $final_message = "This is a multi-part message in MIME format.\n\n" . 
         "--{$mime_boundary}\n" . 
         "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
         "Content-Transfer-Encoding: 7bit\n\n" . 
         $my_message . "\n\n"; 


       //Add sttachments 

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

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

      $final_message .= "--{$mime_boundary}--\n"; 

     $emailto = '[email protected]'; 

     mail($emailto, $subject, $final_message, $headers); 


?> 

を試すことができます。まだ動作しているかどうかはわかりません。

関連する問題