2017-07-31 50 views
0

如何使用PHP自动发送电子邮件,如果:PHP发送电子邮件 “到” 超过1个电子邮件对我的情况下

  1. 只有1个电子邮件
  2. 超过一封电子邮件

在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 = '[email protected]'; 
     $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个电子邮件,所以我想这是这样的:[email protected][email protected]

但如果只有一封电子邮件,然后[email protected]

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

我想是否需要使用数组?如果是的话,该怎么做?

+0

您可以在对多于一个的行进行计数时使用'if/else'条件。 –

+0

使用'$ to。='连接地址或者把循环中的电子邮件发送代码发送给每个recient – RiggsFolly

+0

@all,给我一个例子会更好:) –

回答

0

你必须把

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

在同时支架,

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

因此,将循环你有尽可能多的电子邮件。

+0

什么意思是yourvar1,yourvar2,yourvar3? –