PHP发送电子邮件,如果在我的案例中“发送”超过1封电子邮件

时间:2017-07-31 11:12:54

标签: php email

如果使用PHP自动发送电子邮件:

  1. 只有1封电子邮件
  2. 超过1封电子邮件
  3. PHP变量中的

    $body = "test";
    $qDept = oci_parse($c1, "
                SELECT
                D.DEPARTMENTID,
                D.DEPARTMENTNAME,
                E.EMAIL_SCHEDULERID_FK,
                E.DEPARTMENTID_FK,
                E.EMAIL_ADDRESS
                FROM
                WA_GA_TBL_DEPARTMENTS D,
                WA_GA_TBL_EMAILLISTS E
                WHERE
                D.DEPARTMENTID = E.DEPARTMENTID_FK AND
                D.LOCATIONID_FK = 'LC0001'
            ");
            oci_execute($qDept);
            while($dDept = oci_fetch_array($qDept))
            {
                $to = $dDept['EMAIL_ADDRESS'];
                $body .= "test test";
            }
    
    $host = 'smtp.office365.com';
            $port = '587';
            $username = 'donotreply@test.com';
            $password = 'aw00w?';
    
            $headers = array(
             'Port'          => $port,
             'From'          => $from,
             'To'            => $to,
             'Subject'       => $subject,
            'Content-Type'  => 'text/html; charset=UTF-8'
            );
    
            $recipients = $to.", ".$bcc;
    
            $smtp = Mail::factory('smtp',
             array ('host' => $host,
             'auth' => true,
             'username' => $username,
             'password' => $password));
    
            $mail = $smtp->send($recipients, $headers, $body);
    
            if (PEAR::isError($mail)) {
               echo("<p>" . $mail->getMessage() . "</p>");
            } else {
               echo("<p>Message successfully sent!</p>");
            }
            }
    

    您可以在变量$to

    上看到

    如果同一部门和超过1封电子邮件,我希望它像:someone@test.com,someone1 @ test.com

    但如果只有1封电子邮件,那么是someone @ test.com。

    现在的问题是,如果通过电子邮件发送超过1封电子邮件,它只会发送到第一封电子邮件。

    我认为需要使用数组吗?如果是的话,怎么做?

1 个答案:

答案 0 :(得分:0)

你必须把

$mail = $smtp->send($recipients, $headers, $body);

在while括号中,

while($dDept = oci_fetch_array($qDept))
    {
        $to = $dDept['EMAIL_ADDRESS'];
        $body .= "test test";
        $mail = $smtp->send(yourvar1, yourvar2, yourvar3);
    }

因此,它会循环播放尽可能多的电子邮件。