【问题标题】:Bad parameters to mail() function issue in php emailphp电子邮件中mail()函数的错误参数问题
【发布时间】:2013-07-15 13:05:58
【问题描述】:

错误:警告:mail() [function.mail]:mail() 函数的参数错误,邮件未发送。在 /home/content/19/10977719/html/turgut/email/send.php 第 59 行

我正在尝试发送带有附件的邮件。它显示错误。

它可以在没有附件的情况下工作,但我不需要它。

这不起作用,同样的错误:http://www.vivekmoyal.in/send-email-attachment-in-php-send-attachment-in-email-php/

这是我的 php 代码:

    $upload_name=$_FILES["upload"]["name"];
    $upload_type=$_FILES["upload"]["type"];
    $upload_size=$_FILES["upload"]["size"];
    $upload_temp=$_FILES["upload"]["tmp_name"];

    $fp = fopen($upload_temp, "rb");
    $file = fread($fp, $upload_size);

    $file = chunk_split(base64_encode($file));
    $num = md5(time());     

$ad     = $_POST['ad'];   
$email  = $_POST['email'];
$r_email  = $_POST['r_email'];
$msg    = $_POST['msg'];
$subject    = $_POST['konu'];



       $headers  .= "MIME-Version: 1.0\r\n";
       $headers  .= "Content-Type: multipart/mixed; ";
       $headers  .= "boundary=".$num."\r\n";
       $headers  .= "--$num\r\n";

       // spamden kaçmak için bir yöntem

       $headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
       $headers .= "X-Mailer: PHP v".phpversion()."\r\n";

                // With message

    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
       $headers .= "Content-Transfer-Encoding: 8bit\r\n";
       $headers .= "".$msg."\n";
       $headers .= "--".$num."\n";

        // Attachment headers

    $headers  .= "Content-Type:".$upload_type." ";
       $headers  .= "name=\"".$upload_name."\"r\n";
       $headers  .= "Content-Transfer-Encoding: base64\r\n";
       $headers  .= "Content-Disposition: attachment; ";
       $headers  .= "filename=\"".$upload_name."\"\r\n\n";
       $headers  .= "".$file."\r\n";
       $headers  .= "--".$num."--";

$mailsonuc = mail("$r_email","$subject","$msg", $headers); 

这是html:

<form id="attach" name="attach" action="gonder.php" method="post" enctype="multipart/form-data">
            <h1>{TOP_MSG}</h1>

            <table border="0" width="650">
    <tr>
        <td valign=middle>{NAME}</td>
        <td>:</td>
        <td><input type="text" placeholder="Adınız Soyadınız" required name="ad" /></td>
    </tr>
    <tr>
        <td valign=middle>{SENDER}</td>
        <td>:</td>
        <td><input type="text" placeholder="E-Posta Adresiniz" required name="email" /></td>
    </tr>
        <tr>
        <td valign=middle>{RECEIVER}</td>
        <td>:</td>
        <td><input type="text" placeholder="Alıcı E-Posta Adresi" required name="r_email" /></td>
    </tr>

    <tr>
        <td valign=middle>{KONU}</td>
        <td>:</td>
        <td><textarea name="konu"  required="" cols="46" rows="1"></textarea></td>
    </tr>
    <tr>
        <td valign=middle>{MESSAGE}</td>
        <td>:</td>
        <td><textarea name="msg"  required="" cols="46" rows="7"></textarea></td>
    </tr>
        <tr>
        <td valign=middle>{EK}</td>
        <td>:</td>
        <td> <input type="file" name="upload" id="upload"></td>
    </tr>

    <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
    </tr>
</table>        

            <div align="center">
                <input type="submit" value="Gönder" id="send" name="send" />
            </div>
        </form>

【问题讨论】:

  • 不要直接使用mail()。你应该考虑一个更健壮/稳定的解决方案swiftmailer
  • 如果您告诉我们您看到的错误是什么,这可能会有所帮助。
  • 除非您没有向我们展示您的整个代码,否则您的第一个 $headers 不应以点开头。你有$headers .= "MIME-Version: 1.0\r\n";。如果这实际上是您的第一个标题,则删除点并替换为 $headers = "MIME-Version: 1.0\r\n";。 (一方面)。另外,向我们展示第 59 行的代码,以及它之前和之后的代码。
  • $mailsonuc 的引用是什么?我只在您发布的代码中看到它一次。你显然没有向我们展示你的整个代码。
  • @guybennet 另一件事。我不会继续重新检查这个线程。如果您要回复我的 cmets,请添加包含我的姓名的 @ 符号。 IE。 @Fred.

标签: php email email-attachments


【解决方案1】:

我认为你的问题只是基于小错误。

  1. 检查您的 PHP 版本
  2. 邮寄您的托管公司并向他们报告。
  3. 尝试删除 Bcc: 标头,看看是否可行。

simply search result

也请参考此链接:

This is example for fileupload

否则,请不要建立自己的 MIME 电子邮件。使用PHPMailerSwiftmailer,它们几乎可以为您做所有事情。您可以用大约 5 或 6 行代码替换整个脚本。 除非你能 Refer this links also

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,并注意到我在主题行中有 HTML 字符 &lt;p&gt;。一旦删除,它就起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-05
      • 2021-12-08
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多