`phpmailer` Получение HTTP ERROR 500 при отправке разных писем разным пользователям - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу отправлять почту на разные письма разным пользователям. Но можно отправить только одно письмо, а затем страница показывает ОШИБКА HTTP 500

Я могу получить одно письмо, а затем в моем журнале это показывает

Неустранимая ошибка PHP: невозможно повторно объявить sendMail () (ранее объявлено

Я пытался $ mail-> ClearAllRecipients (); И $ mail-> ClearAddresses (); как уже упоминалось PHPmailer - Многократная отправка электронной почты

$mail->ClearAllRecipients(); 
$mail->setFrom('mail@domain.com', 'Mailer');
$mail->addAddress('mail@info.com', 'Joe User');
$mail->addAddress('mail@info.com');
$mail->addReplyTo('info@example.com', 'Information');

Данные, предназначенные для отправки в виде тела сообщения электронной почты, хранятся в формате массива в сеансе.

[P54] => Array
    (
        [0] => Array
            (
                [id] => 54
                [type] => Package
                [values] => Array
                    (
                        [0] => Array
                            (
                                [name] => Farmaan Mansoori
                                [email] => info@demo.com
                                [phone] => 425698745
                                [date_book] => 2018-09-20
                                [adults] => 1
                                [child] => 0
                                [infant] => 0
                                [room] => 0
                                [suppliment] => no
                                [hotel] => 3 Star
                                [img] => London Paris.jpg
                                [price] => Array
                                    (
                                        [0] => 3540
                                        [1] => 3100
                                        [2] => 2635
                                        [3] => 1
                                        [4] => 440
                                    )

                                [package_name] => london_paris
                                [id] => 54
                                [type] => Package
                            )

                    )

            )

    )

Может кто-нибудь сказать, где я иду не так. Таким образом, я могу отправлять разным пользователям разные данные, предназначенные для них.

Edit:

Полный почтовый код

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';    
$mail = new PHPMailer(true);
     try {
        $mail->SMTPDebug = 0;      
        $mail->isSMTP();        
        $mail->Host = 'smtp.gmail.com'; 
        $mail->SMTPAuth = true;         
        $mail->Username = 'demo@gmail.com'; 
        $mail->Password = 'secret';                          
        $mail->SMTPSecure = 'tls';                           
        $mail->Port = 587;                                   

        //Recipients
        $mail->ClearAllRecipients(); 
        $mail->setFrom('dmeo@gmail.com', 'Mailer');
        $mail->addAddress('info@techyogiitsolutions.com', 'Joe User');
        $mail->addAddress('demo@gmail.com');       
        $mail->addReplyTo('demo@example.com', 'Information');
        $mail->isHTML(true);                                  
        $mail->Subject = "$pname Tour Booking Details";
        $mail->Body    = "Hey! $name <br> You just booked a $pname . Here are some order details. <br>Adults: $adults <br> Child: $child <br> Infant: $infant <br> Hotel Type: $hotel <br> Single Rooms: $single <br> Total: $total.";
        $total = number_format($total);
        $mail->AltBody = "Hey! $name You just booked a $pname . Here are some order details.Adults: $adults Child: $child Infant: $infant Hotel Type: $hotel Single Rooms: $single Total: € $total.";
        $mail->send();
        $mail->ClearAddresses();
        } catch (Exception $e) {
            echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
        }
        $mail->ClearAllRecipients();

Неустранимая ошибка PHP: невозможно повторно объявить sendMail () (ранее объявлено в C: \ Inetpub \ vhosts \ glox \ httpdocs \ rightinteract \ global \ mailer.php: 12) в C: \ Inetpub \ vhosts \ glox.com \ httpdocs \ rightinteract \ global \ mailer.php на строка 12

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Как подсказал Алекс. Я использовал require в цикле, который вызывает проблему

Неустранимая ошибка PHP: невозможно повторно объявить sendMail ()

Поэтому я заменяю require на require_once , что решило проблему.

Спасибо за помощь, Алекс :) ​​

0 голосов
/ 12 сентября 2018

Проверьте, включен ли ваш SMTP в конфигурации вашего Gmail. https://mail.google.com/mail/u/0/#settings/general

https://support.google.com/mail/answer/7126229?visit_id=636723596479169047-2091026498&hl=pt-BR&rd=1

...