繁体   English   中英

发送带有附件问题的电子邮件?

[英]sending email with attachment issue?

最近,我已经使用ProjectPier项目和PHP创建了电子邮件发件人。我正在使用我的Gmail SMTP服务器信息来发送电子邮件。 该脚本可以完美运行。

我想在我的php邮件发件人脚本中添加文件附件

那我该怎么办呢?

<?php
$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: $_POST[name] <$_POST[email]>";
$headers[] = $_POST['name'];
$headers[] = $_POST['email'];
$subject = $_POST['subject'];
$body = $_POST['body'];

if(mail("nur_selam@yahoo.com",$subject,$body, implode("\r\n", $headers))){
echo "your email has been sent.";
}
else{
echo "email sending failed.";
}
?>

我已经使用下面的代码发送附件图像了。

            <?php


            if (isset($_POST['submit'])) {

            $headers = "From: abc@example.com  mailer \r\n";
            $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 = "your emailid";



            $flgchk = mail("$to_user", "$subject", "$message", "$headers"); 


            //require_once ('./includes/functions_mail.php');

                if ($flgchk) {

                echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;url=forwardtoother.php?page=inbox.php\">";
                echo "Done, <br>";
                echo "Redirecting you to your <a href=\"?page=inbox.php\">Inbox</a>";
                }
                else
                {
                     echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;url=forwardtoother.php?page=inbox.php\">";
                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 width='20'>
                 <input type="reset" name="Submit2" value="Start Over." class="Submit"/></td><td>
                 <input type="submit" name="Submit" value="Send" class="Submit" /></td></tr></table>
              </p>
            </form>

看看这个,您可以使用此文件上传文件,并使用标头将其作为附件上传。如何使用所需名称上传和保存文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM