Codeigniter-使用不同的SMTP设置发送电子邮件

时间:2018-09-06 14:03:02

标签: php email codeigniter-3

我有一个系统,该系统对系统的不同部分使用不同的电子邮件。我的配置设置中包含“不答复”电子邮件。但是,如果我尝试使用其他SMTP设置发送电子邮件,它将尝试并使用“电子邮件”配置设置,而不是我指定的阵列设置。

这些是我的电子邮件配置文件中的设置

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.office365.com'; 
$config['smtp_user'] = 'REMOVED';
$config['smtp_pass'] = 'REMOVED';
$config['smtp_port'] = '587';
$config['mailtype'] = 'html';
$config['charset'] = 'utf8';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n"; 
$config['crlf'] = "\r\n"; 
$config['smtp_timeout'] = '120';
$config['smtp_crypto'] = 'tls';

以下是我在数组中指定的设置列表(这些是我要通过Gmail而不是Office365发送此特定电子邮件的设置)

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_user'] = 'REMOVED';
$config['smtp_pass'] = 'REMOVED';
$config['smtp_port'] = '587';
$config['mailtype'] = 'html';
$config['charset'] = 'utf8';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n"; 
$config['crlf'] = "\r\n";
$config['smtp_timeout'] = '120';
$config['smtp_crypto'] = 'tls';

有什么方法可以通过不同的SMTP设置而不是通过电子邮件配置文件中指定的设置来发送电子邮件?我曾尝试通过Gmail设置发送此电子邮件,但它似乎总是可以尝试通过电子邮件配置设置发送。

解决方案:

 $config = array();
                        $config['protocol'] = 'smtp';
                        $config['smtp_host'] = 'smtp.gmail.com';
                        $config['smtp_user'] = 'REMOVED';
                        $config['smtp_pass'] = 'REMOVED';
                        $config['smtp_port'] = '587';
                        $config['mailtype'] = 'html';
                        $config['charset'] = 'utf8';
                        $config['wordwrap'] = TRUE;
                        $config['newline'] = "\r\n"; //use double quotes to comply with RFC 822 standard
                        $config['crlf'] = "\r\n";
                        $config['smtp_timeout'] = '120';
                        $config['smtp_crypto'] = 'tls';

                        $this->email->initialize($config);

解决了我的问题,现在我可以通过临时Gmail帐户而不是Office365帐户发送电子邮件。

1 个答案:

答案 0 :(得分:1)

您可以通过在控制器中构建colnames数组,然后将其用于t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C) for (i in 1:length(t)) { colnames(t[[i]]) <- c("Data", "Open", "Max", "Minimun", "Close") } 文件(以您的情况为office365)中的特定配置(以Gmail为例)来覆盖其中的配置。使用以下命令初始化电子邮件库:

config/Email.php

为此,您必须先使用覆盖的$config来初始化库,然后再实际执行需要该类的任何其他操作,否则默认设置将自动使用