PHPMailer 5.2.x - 集中设置 PHPMailer SMTPAuth 凭据
PHPMailer 5.2.x - Centrally set PHPMailer SMTPAuth credentials
我们继承了一个较旧的 PHP 应用程序。这是一个以奇怪的风格编码的在线商店应用程序。每个邮件程序都已动态编码到响应式 PHP 文件中。有很多文件可以保存发送邮件的代码。
问题是,新的网络服务器使用邮件服务器,要求 SMTPAuth 接受邮件发送。该代码不提供任何 SMTPAuth 凭据,因为以前的托管没有使用它。
脚本正在使用 PHPMailer。
我的问题是,是否有任何方法可以集中设置 SMTPAuth 凭据(主机、用户名、密码),PHPMailer 在发送邮件时始终自动使用这些凭据?
我不想触及外部代码并更改每个脚本,因此它使用 SMTPAuth,例如:
$mail->IsSMTP = true;
$mail->Host = "blah";
$mail->Username = "xxx";
等等。
我希望我的意图很明确。有问题请追问
我已经解决了
只需设置 public 变量的 class.phpmailer.php 中的值:
$Mailer // to "smtp"
$Host // to the mail host
$SMTPAuth // to true
$Username // to the mail accounts username
$Password // to the mail accounts password
就这些了。
不要编辑原始文件 - 否则当您更新 PHPMailer 时,您的代码将中断 - 改为子类化,如下所示:
class myMailer extends PHPMailer {
public function __construct($debug = false) {
parent::__construct($debug);
$this->Username = 'username';
$this->Password = 'password';
$this->isSMTP();
$this->SMTPAuth = true;
}
}
然后在需要实例时使用它,而不是说
$mail = new PHPMailer;
说
$mail = new myMailer;
这种方法是您应该始终使用库的方式;它不是 PHPMailer 特有的。
我们继承了一个较旧的 PHP 应用程序。这是一个以奇怪的风格编码的在线商店应用程序。每个邮件程序都已动态编码到响应式 PHP 文件中。有很多文件可以保存发送邮件的代码。 问题是,新的网络服务器使用邮件服务器,要求 SMTPAuth 接受邮件发送。该代码不提供任何 SMTPAuth 凭据,因为以前的托管没有使用它。
脚本正在使用 PHPMailer。 我的问题是,是否有任何方法可以集中设置 SMTPAuth 凭据(主机、用户名、密码),PHPMailer 在发送邮件时始终自动使用这些凭据?
我不想触及外部代码并更改每个脚本,因此它使用 SMTPAuth,例如:
$mail->IsSMTP = true;
$mail->Host = "blah";
$mail->Username = "xxx";
等等。 我希望我的意图很明确。有问题请追问
我已经解决了
只需设置 public 变量的 class.phpmailer.php 中的值:
$Mailer // to "smtp"
$Host // to the mail host
$SMTPAuth // to true
$Username // to the mail accounts username
$Password // to the mail accounts password
就这些了。
不要编辑原始文件 - 否则当您更新 PHPMailer 时,您的代码将中断 - 改为子类化,如下所示:
class myMailer extends PHPMailer {
public function __construct($debug = false) {
parent::__construct($debug);
$this->Username = 'username';
$this->Password = 'password';
$this->isSMTP();
$this->SMTPAuth = true;
}
}
然后在需要实例时使用它,而不是说
$mail = new PHPMailer;
说
$mail = new myMailer;
这种方法是您应该始终使用库的方式;它不是 PHPMailer 特有的。