dongxi5423 2014-08-02 19:29
浏览 59

在php中发送带有多个附件的电子邮件

I'm using PHP code that have option for attachment in mail. Everything works great when I have one attachment, but when I have two or more I receive only one of them. Also, I have a problem with echo message when mail is sent, I don't receive any message. Here is the code I use:

<?php

if ($_SERVER['REQUEST_METHOD']=="POST"){

  $to="mares.p@hotmail.com";
  $subject="Online Prijava";
  $from = stripslashes($_POST['ime'])."<".stripslashes($_POST['email_adresa']).">";

  if(empty($_POST['ime']) || empty($_POST['email_adresa']))
  {
    $errors .= "
 Greska: nisu uneta sva obavezna polja";
  }

  $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

  $tmp_name = $_FILES['fotokopija_uplatnice']['tmp_name'];
  $type = $_FILES['fotokopija_uplatnice']['type'];
  $file_name = $_FILES['fotokopija_uplatnice']['name'];
  $size = $_FILES['fotokopija_uplatnice']['size'];

  $message = "PODACI U PSU:

 Razred: " .$_POST['razred']. "

 Boja: " .$_POST['boja']. "

 Tip dlake: " .$_POST['tip_dlake']. "

 Velicina: " .$_POST['velicina']. "

 Pol: " .$_POST['pol']. "

 Visina: " .$_POST['visina']. "

 Tezina: " .$_POST['tezina']. "

 Ime psa: " .$_POST['ime_psa']. "

 Broj pedigra: " .$_POST['broj_pedigrea']. "

 Datum rodjenja: " .$_POST['datum_rodjenja']. "

 Otac: " .$_POST['otac']. "

 Broj pedigrea oca: " .$_POST['broj_pedigrea_oca']. "

 Majka: " .$_POST['majka']. "

 Broj pedigra majke: " .$_POST['broj_pedigra_majke']. "

 Odgajivac: " .$_POST['odgajivac']. "



PODACI O VLASNIKU

 Ime: " .$_POST['ime']. "

 Adresa: " .$_POST['adresa']. "

 Grad: " .$_POST['grad']. "

 Drzava: " .$_POST['drzava']. "

 Telefon: " .$_POST['telefon']. "

 Email adresa: " .$_POST['email_adresa'];

  $headers = "From: $from
";

  if (file_exists($tmp_name)){
    if(is_uploaded_file($tmp_name)){
      $file = fopen($tmp_name,'rb');
      $data = fread($file,filesize($tmp_name));
      fclose($file);
      $data = chunk_split(base64_encode($data));
    }

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

    $message .= "


This is a multi-part message in MIME format.

" .
      "--{$mime_boundary}
" .
      "Content-Type: text/plain; charset=\"iso-8859-1\"
" .
      "Content-Transfer-Encoding: 7bit

" .
      $message . "

";

    $message .= "--{$mime_boundary}
" .
      "Content-Type: {$type};
" .
      " name=\"{$file_name}\"
" .
      //"Content-Disposition: attachment;
" .
      //" filename=\"{$fileatt_name}\"
" .
      "Content-Transfer-Encoding: base64

" .
      $data . "

" .
      "--{$mime_boundary}--
";
  }

  if (mail($to, $subject, $message, $headers))
  {
    echo '<div><center><h1>Prijava uspesno poslata.</h1></center></div>';
  } else {
    echo '<div><center><h1>Greska prilikom slanja prijave. Molimo pokusajte ponovo.</h1></center></div>';
  }
}

?>
  • 写回答

2条回答 默认 最新

  • doufeng3602 2014-08-02 19:56
    关注

    i had a some problem . i solved it using phpmailer

    <?php 
    require "classes/class.phpmailer.php"; // include the class name
    $mail = new PHPMailer();
    $mail->isSMTP();    
    $mail->SMTPAuth = true;                                 
    $mail->Host = 'xx';           
    $mail->Username = 'xxxx'; 
    $mail->Password = 'xx';
    $mail->Port = xxx;
    $mail->setFrom('ixx@.123com','ixx@.123com');
    $mail->addAddress('ixx@.123com','ixx@.123com');
    $mail->AddAttachment("1.jpg"); //Attach a file here
    $mail->AddAttachment("2.jpg"); //Attach a file here
    $mail->AddAttachment("3.jpg"); //Attach a file here
    $mail->AddAttachment("4.jpg"); //Attach a file here
    $mail->MsgHTML("<b>Two Attachment. Great Job!.. <br/>"); //Put your body of the message you can place html code here
    //send the message, check for errors
    $mail->IsHTML(true);
    if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
    echo "SENDING";
    }
    ?>
    

    You can use external SMTP like mandrill or Google SMTP or you can use your server SMTP .

    here is a nice tutorial for phpmailler .

    http://www.asif18.com/7/php/send-mails-using-smtp-in-php-by-gmail-server-or-own-domain-server/

    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行