在cakephp中使用多个电子邮件id发送电子邮件
我正在尝试发送具有多个电子邮件id的电子邮件。 我的SMTP电子邮件详细信息:在cakephp中使用多个电子邮件id发送电子邮件,php,cakephp,cakephp-3.x,Php,Cakephp,Cakephp 3.x,我正在尝试发送具有多个电子邮件id的电子邮件。 我的SMTP电子邮件详细信息: $DomainEmailDetails = $this-> DomainEmailDetails->find('all'); $DomainEmailDetails = $DomainEmailDetails->toArray(); 结果: Array ( [0] => App\Model\Entity\DomainEmailDetail Object (
$DomainEmailDetails = $this-> DomainEmailDetails->find('all');
$DomainEmailDetails = $DomainEmailDetails->toArray();
结果:
Array
(
[0] => App\Model\Entity\DomainEmailDetail Object
(
[id] => 1
[name] => email1
[user_name] => abc@gmail.com
[user_password] => abc123
[host_name] => smtp.gmail.com
[port] => 465
[reply_email_id] => abc@gmail.com
)
[1] => App\Model\Entity\DomainEmailDetail Object
(
[id] => 2
[name] => email2
[user_name] => xyz@gmail.com
[user_password] => xyz123
[host_name] => smtp.gmail.com
[port] => 465
[reply_email_id] => xyz@gmail.com
)
)
电子邮件发送代码为:
for ($emp=0; $emp <20 ; $emp++) {
foreach ($DomainEmailDetails as $key => $DomainEmailDetails) {
$host = 'ssl://'.$DomainEmailDetails['host_name'];
$username = $DomainEmailDetails['user_name'];
$password = $DomainEmailDetails['user_password'];
$port = $DomainEmailDetails['port'];
$email_to = 'webtechnology@gmail.com';
$senderName = 'Web';
$ReplyTo = $DomainEmailDetails['reply_email_id'];
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($ReplyTo)
->subject('Client Message');
for ($i=0; $i <10 ; $i++) {
$response = $email->send($msgsend);
}
}
}
for($emp=0;$emp$DomainEmailDetails){
$host='ssl://'。$DomainEmailDetails['host_name'];
$username=$DomainEmailDetails['user_name'];
$password=$DomainEmailDetails['user_password'];
$port=$DomainEmailDetails['port'];
$email\u发送至webtechnology@gmail.com';
$senderName='Web';
$ReplyTo=$DomainEmailDetails['reply_email_id'];
电子邮件::configTransport('WebMail'[
'className'=>'Smtp',
“主机”=>$host,
“端口”=>$port,
“超时”=>30,
“用户名”=>$username,
“密码”=>$password,
“客户端”=>null,
'tls'=>null,
]);
//////////寄信
$email=新电子邮件(“网络邮件”);
$email->template('default','default')
->emailFormat('两者')
->发件人([$username=>$senderName])
->收件人($email\u to)
->replyTo($replyTo)
->主题(“客户信息”);
对于($i=0;$i发送($msgsend);
}
}
}
如何在每10封由一个用户名发送的电子邮件中获取第二封电子邮件登录详细信息。我的意思是说用户名=abc@gmail.comSMTP登录详细信息自动设置第二个用户名后,一次只能发送10封电子邮件=xyz@gmail.com,表示剩余的10封电子邮件将从第二个usename发送。请尝试以下操作:
$i = 0;
for ($emp=0; $emp <20 ; $emp++) {
$host = 'ssl://'.$DomainEmailDetails [$i]['host_name'];
$username = $DomainEmailDetails [$i]['user_name'];
$password = $DomainEmailDetails [$i]['user_password'];
$port = $DomainEmailDetails [$i]['port'];
if(($emp % 10) == 0)
$i++;
...
}
$i=0;
对于($emp=0;$emp请尝试以下方法:
$i = 0;
for ($emp=0; $emp <20 ; $emp++) {
$host = 'ssl://'.$DomainEmailDetails [$i]['host_name'];
$username = $DomainEmailDetails [$i]['user_name'];
$password = $DomainEmailDetails [$i]['user_password'];
$port = $DomainEmailDetails [$i]['port'];
if(($emp % 10) == 0)
$i++;
...
}
$i=0;
对于($emp=0;$emp这里的$email是什么当我使用你的代码时,我只获得了第一个用户名1次,第二个用户名10次这里的$email是什么当我使用你的代码时,我只获得了第一个用户名1次,第二个用户名10次