添加附件到电子邮件php mysql

添加附件到电子邮件php mysql,php,mysql,email,attachment,Php,Mysql,Email,Attachment,大家好,我有一个时事通讯脚本,它将发送任何管理员在文本区放在数据库中的所有电子邮件,现在我希望该用户也能够上传一个.pdf文件到该电子邮件,任何帮助非常感谢!以下是实际发送电子邮件的代码: Plain是包含消息的文本区域 主题就是主题 将需要在表单上添加一个上载输入,以验证此脚本 <?php include "connect.php"; $subject = stripslashes($_POST["subject"]); $plain = stripslashes($_POST["pla

大家好,我有一个时事通讯脚本,它将发送任何管理员在文本区放在数据库中的所有电子邮件,现在我希望该用户也能够上传一个.pdf文件到该电子邮件,任何帮助非常感谢!以下是实际发送电子邮件的代码:

Plain是包含消息的文本区域 主题就是主题 将需要在表单上添加一个上载输入,以验证此脚本

<?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 = "noreply@wgtfgb.com";
$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>

通讯已发送
通讯已发送


使用像SwiftMailer这样的库(http://swiftmailer.org/docs/messages.html)... 添加附件要容易得多。

PEAR\u mail是PHP内置邮件功能的简单且受良好支持的替代品。它支持mime编码和附件,并为您试图实现的目标提供了优秀的文档。

您可以试试这个

    <?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 = 'myeamil@test.com';

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


?>


很久以前,我使用此代码附加附件。我不确定它是否还在工作

省省你的自责吧,停止使用最基本的(动力不足且速度慢的)邮件()功能对我来说没问题吧?这有什么不好的。。?这是可能的还是不可能的,但是这个函数的“能力”非常有限。除了发送非常基本的电子邮件之外,没有人使用它。这仅仅是邮件是不可能的吗?这在php中的普通函数中是不可能的吗?