php邮件设置功能开关不工作


php mailer settings function switch not working

我正在尝试为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');