首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2 Swiftmailer每次发送相同的电子邮件到第一个到

Yii2 Swiftmailer每次发送相同的电子邮件到第一个到
EN

Stack Overflow用户
提问于 2019-01-30 19:33:59
回答 1查看 168关注 0票数 1

我正试着用foreach中的swiftmailer发送电子邮件。但它总是只发送给第一个电子邮件收件人乘以用户数。(假设有3个用户,它将向第一个用户发送3封邮件)。我已经检查了sendmail的每次迭代都有不同的电子邮件地址,该地址在$email实例($ email ->getTo())中,且只要它不能发送电子邮件(即。在本地主机上),它工作得很好。它创建3个电子邮件,有3个不同的地址。但是,当它实际上可以通过SMTP发送它时,它会将所有邮件发送给同一人,并呈现相同的文本。

我认为这个问题与$app->mailer->compose有关,但我不是很确定。(该实例似乎正在保存其数据,并且无法重写,直到应用程序重置)

控制器:

代码语言:javascript
复制
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?";
            }
        }

模型邀请:

代码语言:javascript
复制
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次到第一个地址。

有什么明显的我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 14:45:17

实际问题是localhost没有缓存ldap回答,而是dev服务器缓存。因此,问题实际上是Muhammad Omer Aslam在某种程度上建议的:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54439658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档