对于我的网页,我有一个php邮件服务,可让我通过发送邮件
EmailService::getService()->sendEmail($email, $first_name, $subject, $body);
除非我将此行放入循环中,例如,通知所有列出的管理员,否则此方法工作正常:
$sql = "SELECT * FROM admin_notifications";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_assoc($result)){
EmailService::getService()->sendEmail($row['email'], $row['first_name'], $subject, $body);
}
现在,每个管理员都会收到每封邮件。例如,如果有3个管理员,则每个管理员都会收到3个不同的邮件。该服务似乎分别向每个接收者发送3封邮件。
由于我没有实现邮寄服务本身,并且因为我不完全了解它,所以我真的不知道从哪里开始寻找此错误。
也许有人在这里有建议吗?
这是邮件服务的代码:
<?php
/*Verschickt Emails*/
use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
class EmailService{
/**
* instance
*
* Statische Variable, um die aktuelle (einzige!) Instanz dieser Klasse zu halten
*
* @var Singleton
*/
protected static $_instance = null;
protected $mail;
/**
* get service
*
* Falls die einzige Service-Instanz noch nicht existiert, erstelle sie
* Gebe die einzige Service-Instanz dann zurück
*
* @return Singleton
*/
public static function getService()
{
if (null === self::$_instance)
{
self::$_instance = new self;
}
return self::$_instance;
}
/**
* clone
*
* Kopieren der Service-Instanz von aussen ebenfalls verbieten
*/
protected function __clone() {}
/**
* constructor
*
* externe Instanzierung verbieten
*/
protected function __construct() {
//new PHPMailerAutoload();
$this->mail = new PHPMailer();
慕莱坞森