Расширение почтовой программы yii: как отправить несколько адресов электронной почты одновременно

Q : Как я могу отправить сразу несколько адресов?

статус: я использую расширение почтовой программы. Он работает, когда я отправляю на один адрес. Но когда я отправляю на несколько адресов. Это не работает.

Этот работает.

$mailer->AddAddress("[email protected]");

следующие не работают.

$mailer->AddAddress("[email protected], [email protected]");
$mailer->AddAddress("'[email protected]', '[email protected]'");
$mailer->AddAddress("\"[email protected]\", \"[email protected]\"");

person Thu Ra    schedule 04.09.2012    source источник


Ответы (4)


Вам просто нужно вызвать функцию «addAddress» несколько раз:

$mailer->AddAddress("[email protected]");
$mailer->AddAddress("[email protected]");
person Blizz    schedule 04.09.2012

Измените класс Mailer следующим образом. Посетите эту тему для получения дополнительной информации

<?php

Yii::import('application.extensions.PHPMailer_v5.1.*');

class Mailer {

    private $mail;

    public function initialise() {
        try {
            require Yii::getPathOfAlias('application.extensions') . '/PHPMailer_v5.1/class.phpmailer.php';
            $this->mail = new PHPMailer(TRUE);
            $this->mail->IsSMTP();                           // tell the class to use SMTP
            $this->mail->SMTPDebug = 0;
            $this->mail->SMTPAuth = true;                  // enable SMTP authentication
            $this->mail->Port = 25;                    // set the SMTP server port
            $this->mail->Host = "smtp.test.net"; // SMTP server
            $this->mail->Username = "test.com";      // SMTP server username
            $this->mail->Password = "test";            // SMTP server password
            $this->mail->Mailer = "smtp";
            $this->mail->From = '[email protected]';
            $this->mail->FromName = '[email protected]';
        } catch (Exception $e) {
            echo $e->getTraceAsString();
        }
    }

    public function email($message, $sendTo, $subject) {
        try {
            $this->mail->AddAddress($sendTo);
            $this->mail->Subject = $subject;
            $body = $message;
            $this->mail->MsgHTML($body);
            $this->mail->IsHTML(true); // send as HTML
            $this->mail->Send();
            $this->mail->ClearAllRecipients();
        } catch (Exception $e) {
            echo $e->getTraceAsString();
        }
    }

}

?>
person Gogol    schedule 04.09.2012

Простой способ понять одно электронное письмо...

$emailaddress="[email protected]"
$username="John Doe"

$mail->AddAddress($emailaddress,$username);

Для нескольких писем...

$mail->AddAddress("[email protected]");
$mail->AddAddress("[email protected]");

Или вам нужно несколько писем в массивах...

foreach ($array as $value) {

$mail->AddAddress($array[$value]);

}

и в любом состоянии цикла, которое соответствует вашим требованиям.

person Prince-W    schedule 22.02.2013

Кроме того, вы можете создать сообщение через Yii::app->mailer->newMessage. Это позволяет вам установить значения сообщения электронной почты. Например:

$emailAddresses = array(
    'to'    => array('[email protected]','[email protected]'),
    'bcc'   => array('multiple emails','separated','by','commas'),
    'reply' => $replyEmail,
);

// Generate the message with appropriate fields
$message = Yii::app->mailer->newMessage; //Swift_Message::newInstance()
$message->setSubject($subject);
$message->setFrom(array($emailAddress => 'administration'));
$message->setTo( $emailAddresses['to'] );
$message->setBcc( $emailAddresses['bcc'] );
$message->setReplyTo( $emailAddresses['reply'] );
$message->setBody('<h1>'.$header.'</h1><p>'.$bodyHtml,'text/html');

//Send message
$mailer = Yii::app()->mailer->getInstance($email);

$mailer->send($message,$failures);
person Pawr    schedule 14.09.2016