addAttachment не добавляет вложения в сообщения электронной почты. - PullRequest
0 голосов
/ 11 ноября 2019

У меня написан следующий код, и электронное письмо отправляется нормально, и все, но я не смог выяснить, почему электронное письмо не содержит предполагаемое вложение (файл PDF).

Я также пробовал $ mail-> attach с MIME, и это приводит к внутренней ошибке сервера 500.

    $pdf = public_path() . '/assets/attachments/TermSheet.pdf';
    $mail = new PHPMailer\PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 0;
    $mail->SMTPSecure = '';
    $mail->SMTPAuth = true;
    $mail->IsHTML(true);

    //ENV VARIABLES
    $mail->Host =  env("MAIL_HOST");
    $mail->Port = env("MAIL_PORT");
    $mail->Username = env("MAIL_USERNAME");
    $mail->Password = env("MAIL_PASSWORD");
    $mail->SetFrom($fromemail, $fromname);
    $mail->Subject = $emailsubject;

    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = $emailsubject;
    $mail->addAttachment($pdf);
    $mail->Body    = $initbody;  
    $mail->AddAddress($user);
    if(isset($ccemaillist)){                        //cc
        $ccemail = explode(";",$ccemaillist);
        foreach ($ccemail as $toccmail) {
            $mail->AddAddress($toccmail);
        }
    }                  

    if($mail->Send()) {    

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $currentapp.'/mail/send?api_user_id='.$creatorid);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,
                    "recipient_email=$user&email_type=WelcomeEmail&sys_status=1&creator=$creatorid");

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $server_output = curl_exec($ch);

        curl_close ($ch);     

        return "SUC";
    }

Я не уверен, почему это не работает, любой ввод вэто я был бы признателен. Заранее спасибо:)

1 Ответ

0 голосов
/ 11 ноября 2019

Может выдать

500 внутренняя ошибка сервера

Из-за неправильных путей к файлам.

Вы можете попробовать как $pdf = asset('assets/attachments/TermSheet.pdf'); public_path ()не работает в некоторых случаях.

...