我正在尝试向蛋糕php 3中的多个收件人地址发送电子邮件。
我的代码是:
$this->loadModel('AsIndividualDetails');
$EmailDetails = $this-> AsIndividualDetails->find('all',['fields'=>'email']);
$EmailDetails = $EmailDetails->toArray();
foreach ($EmailDetails as $key => $a) {
$this->loadModel('DomainEmailDetails');
$DomainEmailDetails = $this-> DomainEmailDetails->find('all')->first();
$DomainEmailDetails = $DomainEmailDetails->toArray();
$host = 'ssl://'.$DomainEmailDetails['host_name'];
$username = $DomainEmailDetails['user_name'];
$password = $DomainEmailDetails['user_password'];
$port = $DomainEmailDetails['port'];
$email_to = $a['email'];
$senderName = 'abc';
$email_id ='xyz110@gmail.com';
Email::configTransport('WebMail', [
'className' => 'Smtp',
'host' => $host,
'port' => $port,
'timeout' => 30,
'username' => $username,
'password' => $password,
'client' => null,
'tls' => null,
]);
////////// SEND MAIL
$email = new Email('WebMail');
$email ->template('default','default')
->emailFormat('both')
->from([$username => $senderName])
->to($email_to)
->replyTo($email_id)
->subject('Client Message');
$response = $email->send('My msg');
if($response){
echo 'success';
}else{
echo 'failed';
}
}
当我运行此脚本时,只有一封邮件成功发送,之后出现错误:
Cannot modify an existing config "WebMail"
如何解决此错误并将邮件发送到所有收件人邮件地址。
答案 0 :(得分:1)
如果你真的需要在循环中设置配置,你可以在重写config之前删除它:
use Cake\Mailer\Email;
Email::dropTransport($key);
有关详细信息,请参阅Class Email API
答案 1 :(得分:0)
在循环之外进行电子邮件配置。每次发送电子邮件时,您都不想尝试建立配置 - 只需一次。然后根据该配置发送所有电子邮件。