PHP - PHPMailer 使用多个 SMTP 主机发送电子邮件

PHP - PHPMailer send email with multiple SMTP hosts

我正在使用 PHPMailer 通过 SMTP 服务器发送电子邮件。我能够成功发送电子邮件。但是,我想使用具有不同用户名和密码的多个 SMTP 服务器配置代码。如何实现这个功能。根据 PHPMailer 文档,我们可以提供备份 SMTP 服务器。但是如何用不同的用户名和密码配置它。

下面是代码片段,

$mail->SMTPDebug = 2;                                       // Enable verbose debug output
$mail->isSMTP();                                            // Set mailer to use SMTP
$mail->Host       = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth   = true;                                   // Enable SMTP authentication
$mail->Username   = 'user@example.com';                     // SMTP username
$mail->Password   = 'secret';                               // SMTP password
$mail->SMTPSecure = 'tls';                                  // Enable TLS encryption, `ssl` also accepted
$mail->Port       = 587;                                    // TCP port to connect to

请帮我解决这个问题。任何帮助将不胜感激。 谢谢

首先定义您的服务器,然后选择您要使用的服务器,例如:

$servers = [
    [
        'host'     => 'server1.example.com',
        'username' => 'user 1',
        'password' => 'password1',
    ],
    [
        'host'     => 'server2.example.com',
        'username' => 'user 2',
        'password' => 'password2',
    ],
    [
        'host'     => 'server3.example.com',
        'username' => 'user 3',
        'password' => 'password3',
    ],
];

//Pick a random server (or however you want to select a server)
$server = $servers[array_rand($servers)];

//Use the selected server values for mailing
$mail->Host = $server['host'];
$mail->Username = $server['username'];
$mail->Password = $server['password'];