php 邮件程序设置功能开关不起作用

php mailer settings function switch not working

我正在尝试为 PHPmailer 进行不同的设置 function/switch。 (像这样:

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;
    }
}

在 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');