How to send multiple attachment in single mail in php

前端 未结 3 730
故里飘歌
故里飘歌 2020-12-03 18:36

I would like to know about attaching multiple attachment in single mail and send . Please refer my following oode. In this only one file is getting attached. That is second

相关标签:
3条回答
  • 2020-12-03 19:10

    This is what I came up with for multiple files with form file name userfile:

    for($ct=0;$ct<count($_FILES['userfile']['tmp_name']);$ct++)
    {
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
        $filename =$_FILES['userfile']['name'][$ct];
        if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
            $mail->addAttachment($uploadfile, $filename);
        }
    
    }
    
    if ($mail->send()) {
        echo "Sent";
    } else {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    
    0 讨论(0)
  • 2020-12-03 19:14

    Following the reusability principles, you can use https://github.com/PHPMailer/PHPMailer

    <?php
    require 'PHPMailerAutoload.php';
    
    $mail = new PHPMailer;
    
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup server
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'jswan';                            // SMTP username
    $mail->Password = 'secret';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted
    
    $mail->From = 'from@example.com';
    $mail->FromName = 'Mailer';
    $mail->addAddress('josh@example.net', 'Josh Adams');  // Add a recipient
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name                               
    
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    
    if(!$mail->send()) {
       echo 'Message could not be sent.';
       echo 'Mailer Error: ' . $mail->ErrorInfo;
       exit;
    }
    
    echo 'Message has been sent';
    

    Source: How to attach two or multiple files and send mail in PHP

    0 讨论(0)
  • 2020-12-03 19:21

    For those who want to send multiple files using phpMailer and input file multiple. I joined and used the above two codes of @Rishi and @Matheno to achieve this result that dinamically add attachments selecteds by user.

    On your input file name remember to put brackets:

    <input type="file" multiple="multiple" name="attach_file[]" />
    

    On your php send file:

    Instead of:

    $mail->addAttachment('/var/tmp/file.tar.gz');
    

    Use:

    for($ct=0;$ct<count($_FILES['attach_file']['tmp_name']);$ct++){
        $mail->AddAttachment($_FILES['attach_file']['tmp_name'][$ct],$_FILES['attach_file']['name'][$ct]);
    }
    
    0 讨论(0)
提交回复
热议问题