我正在尝试为PHPmailer的不同设置制作一个函数/开关。(大概是这样的:
function create_mailer($current_site,$from,$from_name){
require_once 'classes/PHPMailer/PHPMailerAutoload.php';
$mailer = new PHPMailer;
switch ($current_site){
case 'site1':
$mailer->isSMTP();
$mailer->Host = 'mail.site1.com';
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = 'tls';
$mailer->Port = 587;
$mailer->Username = 'username1';
$mailer->Password = 'password1';
$mailer->From = $from;
$mailer->FromName = $from_name;
$mailer->isHTML(true);
return $mailer;
break;
case 'site2':
$mailer = new PHPMailer;
$mailer->isSMTP();
$mailer->Host = 'mail.site2.com';
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = 'tls';
$mailer->Port = 587;
$mailer->Username = 'username2';
$mailer->Password = 'password2';
$mailer->From = $from;
$mailer->FromName = $from_name;
$mailer->isHTML(true);
return $mailer;
break;
}
}
在de index.php中,我做了一些类似的东西:
require 'functions/create_mailer.php';
$mailer = create_mailer('site1','mail1@sitename1.com','mailname');
$mail = new Mailer($mailer);
$mail->send('mailtemplate/new_bid.php',['something'=>'else'],function($m) {
$m->to('email@to.somebody');
$m->subject('mailsubject');
});
当我不使用开关时,邮递员就工作了。(如果设置只是在index.php中,我的意思是)我不明白为什么这不起作用,因为我一直认为这种必须起作用:)
请给我建议。
提前感谢。
您正在调用create_mailer('sitename1','mail1@sitename1.com','mailname');
,但正在使用'site1'
进行测试。
向交换机添加默认值,或调用create_mailer('site1','mail1@sitename1.com','mailname');