尝试使用Yiimail从数据库获取电子邮件

补救。

一点背景,

我正在创建一个简单的函数,每当博客管理员创建新公告时,该函数就会通过电子邮件向所有用户发送电子邮件。我想使用sql查询收集所有电子邮件,并将它们全部输入到消息正文中,或者一次循环发送一封电子邮件(尽管这看起来可能会花费更长的时间)。

到目前为止,这是我的代码:

 public function emailAll()
    {
        $this->set_mail_settings();
        $message = new YiiMailMessage;        

        $request = Yii::app()->db->createCommand("
                                    SELECT email FROM persons WHERE party_id
                                ")->queryRow();

                $message->subject = 'Star Cruises - Login Information';
                $message->addTo('[email protected]');
                $message->from = Yii::app()->params['adminEmail'];
                Yii::app()->mail->send($message);
                exit();

        }

 private function set_mail_settings()
    {            
        $sysParam = SystemParameters::model()->getSystemParameters(
        array("smtp_host", "smtp_port", 'smtp_user','smtp_password')
    );

        Yii::app()->mail->transportOptions['username'] = $sysParam['smtp_user'];
        Yii::app()->mail->transportOptions['password'] = $sysParam['smtp_password'];
        Yii::app()->mail->transportOptions['host'] = $sysParam['smtp_host'];
        Yii::app()->mail->transportOptions['port'] = $sysParam['smtp_port'];
    }

每当使用电子邮件时,都会调用emailAll()函数。

我的问题是$ request。我不知道如何收集所有电子邮件并将其放入$ message-> addTo();中。

更新:在达到这一点之前,我做得还不错:

    public function emailAll()
    {

        $this->set_mail_settings();
        $message = new YiiMailMessage;        

                $emails = Yii::app()->db->createCommand("SELECT group_concat(email) as em FROM persons")->queryRow();
                $email_ids = explode(",",$emails["em"]);
                $message->setBcc($email_ids);
                $message->setBody('Sample');
                $message->subject = 'New Announcement!';
                //$message->addTo('[email protected]');
                $message->from = Yii::app()->params['adminEmail'];
                Yii::app()->mail->send($message);


        }

 private function set_mail_settings()
    {            
        $sysParam = SystemParameters::model()->getSystemParameters(
        array("smtp_host", "smtp_port", 'smtp_user','smtp_password')
    );

        Yii::app()->mail->transportOptions['username'] = $sysParam['smtp_user'];
        Yii::app()->mail->transportOptions['password'] = $sysParam['smtp_password'];
        Yii::app()->mail->transportOptions['host'] = $sysParam['smtp_host'];
        Yii::app()->mail->transportOptions['port'] = $sysParam['smtp_port'];
    }

然后,我从YiiMail.php的这一行得到了一个错误:

 189         $msg = 'Sending email to '.implode(', ', array_keys($message->to))."\n".

它表示:array_keys()期望参数1为数组,给定null。

我了解它想要什么,但我不明白为什么会发生此错误?

库玛五世

您可以使用以下查询获取所有电子邮件ID,并出于安全原因使用BCC代替To

$emails = Yii::app()->db->createCommand("SELECT group_concat(email) as em FROM persons WHERE party_id = $party_id")->queryRow();
$email_ids = explode(",",$emails["em"]);
$message->setBcc($email_ids); // use bcc to hide email ids from other users
$message->addTo("[email protected]"); //as To is required, set some dummy id or your own id.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试从数据库值发送电子邮件

来自分类Dev

尝试从数据库值发送电子邮件

来自分类Dev

Xamrin.Forms尝试使用Firebase实时数据库创建电子邮件检查

来自分类Dev

获取Facebook电子邮件并使用Oauth登录保存到会员数据库

来自分类Dev

使用phpmailer从数据库发送电子邮件

来自分类Dev

使用数据库以Java发送电子邮件

来自分类Dev

从数据库中选择那些电子邮件,如果他们想获取电子邮件

来自分类Dev

尝试/捕获发送电子邮件并创建数据库条目,即使不应这样做

来自分类Dev

我正在尝试创建HTML页面作为电子邮件的正文。如何使用yiiMail将其传递到setBody()中?

来自分类Dev

如何使用Codeigniter从数据库中获取记录并将其发送到电子邮件?

来自分类Dev

从表单获取用户名,密码和电子邮件,并使用它创建数据库行

来自分类Dev

如何使用SPARQL获取数据库中所有人的昵称和电子邮件?

来自分类Dev

如何显示 MySQL 数据库中的特定数据?(获取用户的电子邮件)

来自分类Dev

如何从oracle数据库中获取电子邮件地址

来自分类Dev

通过Codeigniter中的电子邮件ID获取数据库

来自分类Dev

如何根据 Laravel 中发布的电子邮件从数据库获取用户名

来自分类Dev

通过imap与本地数据库同步电子邮件

来自分类Dev

在SQL数据库中存储电子邮件

来自分类Dev

从数据库查询发送多封电子邮件

来自分类Dev

验证电子邮件并更新MySQL数据库列

来自分类Dev

插入数据库,然后发送电子邮件

来自分类Dev

显示特定电子邮件的数据库

来自分类Dev

检查数据库中是否存在电子邮件

来自分类Dev

电子邮件数据库结果

来自分类Dev

使用Yii框架从数据库发送电子邮件的脚本

来自分类Dev

使用失败的电子邮件传递报告更新数据库

来自分类Dev

django-post_office-使用基于文件而不是基于数据库的电子邮件模板

来自分类Dev

如何使用CodeIgniter检查数据库中是否已存在电子邮件

来自分类Dev

使用Python和Pandas合并带有代理电子邮件的员工数据库

Related 相关文章

  1. 1

    尝试从数据库值发送电子邮件

  2. 2

    尝试从数据库值发送电子邮件

  3. 3

    Xamrin.Forms尝试使用Firebase实时数据库创建电子邮件检查

  4. 4

    获取Facebook电子邮件并使用Oauth登录保存到会员数据库

  5. 5

    使用phpmailer从数据库发送电子邮件

  6. 6

    使用数据库以Java发送电子邮件

  7. 7

    从数据库中选择那些电子邮件,如果他们想获取电子邮件

  8. 8

    尝试/捕获发送电子邮件并创建数据库条目,即使不应这样做

  9. 9

    我正在尝试创建HTML页面作为电子邮件的正文。如何使用yiiMail将其传递到setBody()中?

  10. 10

    如何使用Codeigniter从数据库中获取记录并将其发送到电子邮件?

  11. 11

    从表单获取用户名,密码和电子邮件,并使用它创建数据库行

  12. 12

    如何使用SPARQL获取数据库中所有人的昵称和电子邮件?

  13. 13

    如何显示 MySQL 数据库中的特定数据?(获取用户的电子邮件)

  14. 14

    如何从oracle数据库中获取电子邮件地址

  15. 15

    通过Codeigniter中的电子邮件ID获取数据库

  16. 16

    如何根据 Laravel 中发布的电子邮件从数据库获取用户名

  17. 17

    通过imap与本地数据库同步电子邮件

  18. 18

    在SQL数据库中存储电子邮件

  19. 19

    从数据库查询发送多封电子邮件

  20. 20

    验证电子邮件并更新MySQL数据库列

  21. 21

    插入数据库,然后发送电子邮件

  22. 22

    显示特定电子邮件的数据库

  23. 23

    检查数据库中是否存在电子邮件

  24. 24

    电子邮件数据库结果

  25. 25

    使用Yii框架从数据库发送电子邮件的脚本

  26. 26

    使用失败的电子邮件传递报告更新数据库

  27. 27

    django-post_office-使用基于文件而不是基于数据库的电子邮件模板

  28. 28

    如何使用CodeIgniter检查数据库中是否已存在电子邮件

  29. 29

    使用Python和Pandas合并带有代理电子邮件的员工数据库

热门标签

归档