我知道如何在PHPMailer中使用SMTP:
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "mail.yourdomain.com"; // sets the SMTP server
$mail->Username = "yourname@yourdomain"; // SMTP account username
$mail->Password = "yourpassword"; // SMTP account password
它工作正常。但我的问题是:
如何配置PHPMailer默认使用这些设置,以便每次我想发送邮件时都不必指定它们?
答案 0 :(得分:14)
创建一个函数,并包含/使用它。
function create_phpmailer() {
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "mail.yourdomain.com"; // sets the SMTP server
$mail->Username = "yourname@yourdomain"; // SMTP account username
$mail->Password = "yourpassword"; // SMTP account password
return $mail;
}
调用create_phpmailer()创建一个新的PHPMailer对象。
或者您可以派生自己的子类,它设置参数:
class MyMailer extends PHPMailer {
public function __construct() {
parent::__construct();
$this->IsSMTP(); // telling the class to use SMTP
$this->SMTPAuth = true; // enable SMTP authentication
$this->Host = "mail.yourdomain.com"; // sets the SMTP server
$this->Username = "yourname@yourdomain"; // SMTP account username
$this->Password = "yourpassword"; // SMTP account password
}
}
并使用新的MyMailer()。
答案 1 :(得分:2)
我是否可以只编辑class.phpmailer.php文件?
最好不要自己编辑类文件,因为它会使代码难以维护。
答案 2 :(得分:0)
你也可以使用这个钩子:
/**
* Fires after PHPMailer is initialized.
*
* @since 2.2.0
*
* @param PHPMailer &$phpmailer The PHPMailer instance, passed by reference.
*/
do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );
从wp_mail函数本身的源码直接修改phpmailer类。