我正在尝试通过Codeigniter电子邮件库表单 localhost 发送电子邮件。以下是我的代码。
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'shreesaipratik1@gmail.com',
'smtp_pass' => 'xxxxxx',
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from('shreesaipratik1@gmail.com');
$this->email->to('shreesaipratik@gmail.com');
$this->email->subject('Subject');
$this->email->message('Sample message');
if (!$this->email->send())
{
show_error($this->email->print_debugger());
}
else
{
echo 'Your e-mail has been sent!';
}
我收到以下错误: -
无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。&
严重性:警告
消息:mail():无法连接到" localhost"的邮件服务器端口25,验证您的" SMTP"和" smtp_port"在php.ini中设置或使用ini_set()
文件名:libraries / Email.php
行号:1896
回溯:
文件:D:\ xampp \ htdocs \ ajax \ application \ controllers \ angular_http.php 行:29 功能:发送
文件:D:\ xampp \ htdocs \ ajax \ index.php 行:315 功能:require_once
答案 0 :(得分:0)
我认为您还没有配置邮件服务器。如果您使用的是XAMPP,那么您可以轻松地从localhost发送邮件。
例如你可以配置(考虑'C:\ xampp'作为安装目录)C:\ xampp \ php \ php.ini和c:\ xampp \ sendmail \ sendmail.ini以便gmail发送邮件。
在C:\ xampp \ php \ php.ini中找到extension = php_openssl.dll并从该行的开头删除分号,以使SSL为ghost for localhost工作。
在php.ini文件中找到[mail function]并更改
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
现在打开C:\ xampp \ sendmail \ sendmail.ini。使用以下代码替换sendmail.ini中的所有现有代码
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
首先,确保PHP安装具有SSL支持(在phpinfo()的输出中查找“openssl”部分。)
您可以在PHP.ini中设置以下设置:
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
请提出您在localhost上使用的堆栈,如果您没有使用XAMPP或WAMP。
答案 1 :(得分:0)
您唯一做错的是电子邮件库加载和一些配置选项:
您正在将电子邮件库加载为$this->load->library('email', $config);
。
错误 ,因此将其加载为$this->load->library('email');
并将其初始化为$this->email->initialize($config);
,请参见下面的完整代码:
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'your@mail.com', // change it to yours
'smtp_pass' => 'yourpassword', // change it to yours
'mailtype' => 'text',// it can be text or html
'wordwrap' => TRUE,
'newline' => "\r\n",
'charset' => 'utf-8',
);
$this->load->library('email');
$this->email->initialize($config);
$this->email->from('your@mail.com',"Your Name");
$this->email->to('receiver@mail.com');
$this->email->subject('Subject');
$this->email->message('Sample message');
if (!$this->email->send())
{
show_error($this->email->print_debugger());
}
else
{
echo 'Your e-mail has been sent!';
}