我想通过电子邮件类在codeigniter中使用gmail发送电子邮件,但我收到以下错误:
错误:
遇到PHP错误
严重性:警告
消息: mail()[function.mail]:无法连接到mailserver “ssl://smtp.googlemail.com”端口25,验证您的“SMTP”和 php.ini中的“smtp_port”设置或使用ini_set()
文件名: libraries / Email.php
行号:1553
这是我在controll中的全部功能:
function send_mail(){
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'xyz@gmail.com';
$config['smtp_pass'] = 'xxxxxxx';
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from('neginph@gmail.com', 'Negin Phosphate Shomal');
$this->email->to('neginfos@yahoo.com');
$this->email->subject('This is an email test');
$this->email->message('It is working. Great!');
if($this->email->send())
{
echo 'Your email was sent, successfully.';
}
else
{
show_error($this->email->print_debugger());
}
}
我在php.ini
中更改了SMTP:
SMTP = ssl://smtp.googlemail.com
smtp_port = 25
我该怎么办?
尊重
答案 0 :(得分:7)
这对我有用
$email_config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'someuser@gmail.com',
'smtp_pass' => 'password',
'mailtype' => 'html',
'starttls' => true,
'newline' => "\r\n"
);
$this->load->library('email', $email_config);
$this->email->from('someuser@gmail.com', 'invoice');
$this->email->to('test@test.com');
$this->email->subject('Invoice');
$this->email->message('Test');
$this->email->send();
答案 1 :(得分:0)
您是否已开启php_openssl
?
尝试在extension=php_openssl.dll
文件中取消注释php.ini
。
答案 2 :(得分:0)
这对我来说是在localhost:
<?php
class Email extends CI_controller
{
function index()
{
$this->load->library('email');
$this->load->helper('url');
$this->load->helper('form');
$config= Array(
'protocol' =>'localhost',
'smtp_host' => 'localhost',
'smtp_port' => 'localhost',
'smtp_user'=> 'root',
'smtp_pass' =>''
);
$this->load->library('email','$config');
$this->email->set_newline("\r\n");
$this->email->from('nisha@gmail.com','nisha');
$this->email->to('cse1473@gmail.com');
$this->email->subject('this is email with subject');
$this->email->message('it s working properly');
if($this->email->send())
{
echo "your email send";
}
else
{
show_error($this->email->print_debugger());
}
}
}
?>