基于域的不同SMTP

时间:2017-09-26 作者:Stephen

我有一个多域wordpress站点,设置为https://example1.comhttps://example2.com 两者都工作并显示相同的内容(但地址栏显示所使用的域)。我希望来自该站点的管理邮件根据域的不同使用不同的SMTP设置(我在每个域中都有完全独立的邮件帐户,我希望使用这些帐户发送各自域的邮件)。什么是最好的方式来设置这样的东西,使其在站点范围内工作取决于域?

我可以很容易地设置任何与一个域一起工作的SMTP插件。。。我如何才能让它在每个人的不同设置下工作?

注意:这不是多站点安装。这是一个为输入的任一域提供相同内容的站点。

1 个回复
最合适的回答,由SO网友:Stephen Afam-Osemene 整理而成

我相信你需要的是phpmailer_init 行动挂钩。

这是你可以做的一件事。

add_action( \'phpmailer_init\', \'custom_smtp_settings\' );

function custom_smtp_settings( $phpmailer ) {

    $phpmailer->isSMTP();

    switch ($_SERVER[\'HTTP_HOST\']) {

        case \'example1.com\': //name only, no http
            $phpmailer->Host = \'smtp.example1.com\';
            $phpmailer->SMTPAuth = true; // Force it to use Username and Password to authenticate
            $phpmailer->Port = 25;
            $phpmailer->Username = \'example1\';
            $phpmailer->Password = \'example1pass\';

            // Additional settings…
            $phpmailer->SMTPSecure = "tls"; // Choose SSL or TLS, if necessary for your server
            $phpmailer->From = "[email protected]";
            $phpmailer->FromName = "Example One";
            break;

        case \'example2.com\':
            $phpmailer->Host = \'smtp.example2.com\';
            $phpmailer->SMTPAuth = true; // Force it to use Username and Password to authenticate
            $phpmailer->Port = 25;
            $phpmailer->Username = \'example2\';
            $phpmailer->Password = \'example2pass\';

            // Additional settings…
            $phpmailer->SMTPSecure = "tls"; // Choose SSL or TLS, if necessary for your server
            $phpmailer->From = "[email protected]";
            $phpmailer->FromName = "Example Two";
            break;
    }

}

结束

相关推荐

您的PHP安装似乎缺少MySQL...从cPanel删除并重新启动后

当我安装wordpress时,我删除了目录中的所有内容以“重新开始”:您的PHP安装似乎缺少wordpress所需的MySQL扩展。我尝试更改php版本,但没有什么不同。这是我的主页目录: 有什么我错过的吗。此外,我还下载了完整的站点备份b4,我删除了以下文件夹: 我应该使用哪些备份文件,以及如何将网站恢复到正常状态。非常感谢