如何将上传的文件发送到php中的电子邮件

时间:2016-07-13 12:04:09

标签: javascript php file attachment email-attachments

我一直在努力使用php将上传的文件发送到电子邮件。我的问题是我将电子邮件上传的文件发送到该电子邮件。这是我的代码,它不起作用。

<?php
        if (isset($_POST['submit'])) {
        $headers = "From: abc@example.com  mailer \r\n";
        echo $message .= $_POST['message'];  
            /* GET File Variables */ 
        $tmpName = $_FILES['attachment']['tmp_name']; 
        $fileType = $_FILES['attachment']['type']; 
        $fileName = $_FILES['attachment']['name']; 

        if (file_exists($tmpName)) { 
          /* Reading file ('rb' = read binary)  */

          $file = fopen($tmpName,'rb'); 
          $data = fread($file,filesize($tmpName)); 
          fclose($file); 

          /* a boundary string */
          $randomVal = md5(time()); 
          $mimeBoundary = "==Multipart_Boundary_x{$randomVal}x"; 

          /* Header for File Attachment */
          $headers .= "\nMIME-Version: 1.0\n"; 
          $headers .= "Content-Type: multipart/mixed;\n" ;
          $headers .= " boundary=\"{$mimeBoundary}\""; 

          /* Multipart Boundary above message */
          $message = "This is a multi-part message in MIME format.\n\n" . 
          "--{$mimeBoundary}\n" . 
          "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
          "Content-Transfer-Encoding: 7bit\n\n" . 
          $message . "\n\n"; 

          /* Encoding file data */
          $data = chunk_split(base64_encode($data)); 

          /* Adding attchment-file to message*/
          $message .= "--{$mimeBoundary}\n" . 
          "Content-Type: {$fileType};\n" . 
          " name=\"{$fileName}\"\n" . 
          "Content-Transfer-Encoding: base64\n\n" . 
          $data . "\n\n" . 
          "--{$mimeBoundary}--\n"; 

        } 
        $to_user = "bnarendra6036@gmail.com";
        $flgchk = mail("$to_user", "$subject", "$message", "$headers"); 

            if ($flgchk) {
            echo "Done, <br>";
            }
            else
            {          
            echo "Failed to send email, <br>";
            echo "Redirecting you to your <a href=\"?page=inbox.php\">Inbox</a>";
            }
        } 
        ?>
        <form name="form1" method="post" action="" enctype="multipart/form-data">
        <table>
            <tr>
            <td width='20'><b>Select File:</b> </td>
            <td width='20'><input type="file" name="attachment"></td>
            </tr>
          <p><td>
             <input type="submit" name="Submit" value="Send" class="Submit" /></td></tr></table>
          </p>
        </form>

您也可以调整此代码或向我发送任何其他工作代码。

1 个答案:

答案 0 :(得分:1)

我使用PHPMailer创建了demo。首先加载phpmailer.class.php文件。 您可以从这里下载:http://github.com/PHPMailer/PHPMailer

require_once('/class.phpmailer.php'); // Your full path of phpmailer.php file

$email = new PHPMailer();
$email->From      = 'From email address'; //From email address
$email->FromName  = 'Your name'; //your name
$email->Subject   = 'Message'; //Message
$email->Body      = 'Body Text Message'; //Body message
$email->AddAddress( 'To email address' ); //To email address

$attach_file = 'Your file path'; //Attached file path

$email->AddAttachment( $attach_file, 'file_name.doc' );

return $email->Send();