我是CodeIgniter的新手。我是否知道如何通过localhost在CodeIgniter中发送电子邮件?我应该在smtp_user
和smtp_pass
中添加什么内容?以下是我的控制器代码:
function Forgot_Password()
{
$this->form_validation->set_rules('Email', 'Email', 'trim|required|valid_email|callback_email_check');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('templates/header');
$this->load->view('Forgot_Password');
$this->load->view('templates/footer');
}
else
{
$this->load->library('email');
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'xxxxxxxxxx',
'smtp_pass' => 'xxxxxxxxxx'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from('26328@siswa.unimas.my', 'Your Name');
$this->email->to('foo.900.fch@gmail.com');
//$this->email->cc('another@another-example.com');
//$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
if($this->email->send())
{
echo 'Email sent.';
}
else
{
show_error($this->email->print_debugger());
}
}
}
在config.php(配置文件夹)中,我有:
$config['smtp_host'] = 'ssl://smtp.gmail.com'; // SMTP Server Address.
$config['smtp_port'] = '465'; // SMTP Port.
$config['protocol'] ='sendmail';
答案 0 :(得分:2)
您必须在系统中配置sendmail。
如果您使用的是ubuntu,请按照以下步骤操作: 如果您想在Ubuntu-Linux服务器上将Gmail帐户用作免费的SMTP服务器,您会发现本文很有用。本指南使用Ubuntu 12.04进行测试。如果您遇到任何问题,请随时使用评论部分。 通过smtp.gmail.com转发Postfix邮件:
首先,安装所有必要的软件包:
sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
如果之前没有安装postfix,postfix配置向导会问你一些问题。只需选择您的服务器作为Internet站点,并使用类似mail.example.com
的FQDN然后打开你的postfix配置文件:
vim /etc/postfix/main.cf
以及以下内容:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
您可能已经注意到我们未在上面的行中指定我们的Gmail用户名和密码。他们将进入另一个文件。打开/创建
vim /etc/postfix/sasl_passwd
并添加以下内容:
[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD
如果您想使用Google App的域名,请将@ gmail.com替换为您的@ domain.com
修复权限并更新postfix配置以使用sasl_passwd文件:
sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
接下来,验证证书以避免遇到错误。只需运行以下命令:
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
最后,重新加载postfix配置以使更改生效:
sudo /etc/init.d/postfix reload
测试 检查邮件是否通过Gmail SMTP服务器发送
如果您已正确配置所有内容,则以下命令应生成从服务器到邮箱的测试邮件。
echo "Test mail from postfix" | mail -s "Test Postfix" you@example.com
有关详情:https://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/
感谢rtcamp.com,它给了我很多帮助: - )
答案 1 :(得分:0)
ssl
代码需要SMTP
的Google邮件,因此open_ssl
应在php.ini
Codeigniter邮件库有关SSL / TLS click here
的更多详细信息在php中启用OPEN SSL click here