Yii2 Swiftmailer foreach 将相同的电子邮件发送到第一个
Yii2 Swiftmailer foreach sending same email to first to
我正在尝试通过 foreach 中的 swiftmailer 发送电子邮件。但它总是只发送给第一个电子邮件收件人乘以用户数量。 (比如,有 3 个用户,它将向第一个用户发送 3 封邮件)。
我检查过 sendmail 的每次迭代都有不同的电子邮件地址,该地址在 $email 实例($email->getTo())中并且只要它不能发送电子邮件(即在本地主机上)它就可以正常工作。它创建 3 封电子邮件,有 3 个不同的地址。但是当它实际上可以通过 SMTP 发送时,它会将所有邮件发送给同一个人,并呈现相同的文本。
我认为问题出在 $app->mailer->compose 上,但我不太确定。 (似乎那个实例正在保存它的数据并且它不能被重写,直到应用程序重置)
控制器:
foreach ($invitations as $invitation_id) {
$model = Invitation::findOne($invitation_id);
if (!empty($model)) {
if (!$model->sendMail('Test mail')) {
$errors[] = $model->userName;
}
} else {
$errors[] = "Non existing $invitation_id?";
}
}
模特邀请:
public function sendMail ($text){
$user = User::findOne($this->user_id);
$email = Yii::$app->mailer->compose('layouts/bulk-email', ['user' => $user, 'text' => $text])
->setFrom('test@test.com')
->setTo($user['mail'])
->setSubject('Test subject');
return $email->send();
}
我尝试使用 sendMultiple 方法(首先将消息创建到数组,然后一次将它们全部发送),但它们都发送了 6 次到第一个地址。
有什么明显的我遗漏的东西吗?
实际问题是本地主机没有缓存 ldap 答案,但开发服务器缓存了。所以问题实际上是 Muhammad Omer Aslam 所建议的:)
我正在尝试通过 foreach 中的 swiftmailer 发送电子邮件。但它总是只发送给第一个电子邮件收件人乘以用户数量。 (比如,有 3 个用户,它将向第一个用户发送 3 封邮件)。 我检查过 sendmail 的每次迭代都有不同的电子邮件地址,该地址在 $email 实例($email->getTo())中并且只要它不能发送电子邮件(即在本地主机上)它就可以正常工作。它创建 3 封电子邮件,有 3 个不同的地址。但是当它实际上可以通过 SMTP 发送时,它会将所有邮件发送给同一个人,并呈现相同的文本。
我认为问题出在 $app->mailer->compose 上,但我不太确定。 (似乎那个实例正在保存它的数据并且它不能被重写,直到应用程序重置)
控制器:
foreach ($invitations as $invitation_id) {
$model = Invitation::findOne($invitation_id);
if (!empty($model)) {
if (!$model->sendMail('Test mail')) {
$errors[] = $model->userName;
}
} else {
$errors[] = "Non existing $invitation_id?";
}
}
模特邀请:
public function sendMail ($text){
$user = User::findOne($this->user_id);
$email = Yii::$app->mailer->compose('layouts/bulk-email', ['user' => $user, 'text' => $text])
->setFrom('test@test.com')
->setTo($user['mail'])
->setSubject('Test subject');
return $email->send();
}
我尝试使用 sendMultiple 方法(首先将消息创建到数组,然后一次将它们全部发送),但它们都发送了 6 次到第一个地址。
有什么明显的我遗漏的东西吗?
实际问题是本地主机没有缓存 ldap 答案,但开发服务器缓存了。所以问题实际上是 Muhammad Omer Aslam 所建议的:)