我不明白为什么如果我尝试使用CI Email类,它不发送电子邮件,而如果我使用本地PHP mail()类,它可以工作。
必须指出的是,有时我得到“电子邮件发送”,而实际上并没有发送,有时我得到错误“我的服务器没有设置”。
我试着想办法把它装起来但是...什么都没有...
控制器代码如下:
if($this->form_validation->run()){
//Set Language
$this->lang->load('site', $this->session->userdata('lang'));
//Random key
$user_valid_key = md5(uniqid());
//Prepare email
$this->load->library('email', array('mailtype' => 'html'));
$this->email->from($this->config->item('email_signup_from'), 'Wondermark.net');
$this->email->to($this->input->post('email'));
$this->email->subject($this->lang->line('email_signup_subject'));
//Format mail con %s per inserire i campi necessari
$signup_msg = sprintf($this->lang->line('email_signup_message'), $this->input->post('fname'), base_url().'main/signup_confirm/'.$user_valid_key);
$this->email->message((string)$signup_msg);
if($this->email->send()){
//TODO: load view...
echo "email sent";
}else{
$to = $this->input->post('email');
mail($to, 'test', 'Other sent option failed');
echo $this->input->post('email');
show_error($this->email->print_debugger());
}
//TODO: Add to db
}else{
// Form validation failed
}
8条答案
按热度按时间b5buobof1#
使用此设置电子邮件..
8hhllhi22#
我面对这个问题,并找到了以下解决方案。只是在电子邮件配置的一个小变化,它的工作100%:
gt0wga4j3#
Codeigniter用户指南:https://www.codeigniter.com/user_guide/libraries/email.html
此设置适合我:
aiazj4mn4#
我用了很多时间在localhost中运行我的配置代码,但它总是给我一个错误(无法使用PHP SMTP发送电子邮件。您的服务器可能没有配置为使用此方法发送邮件。)
但是当在我的服务器中运行下面的代码时,它对我很有效。
应用程序〉控制器〉发送电子邮件_控制器.php
和email视图页面是通过post方法实现的。应用程序〉视图〉emailtesting.php
如果错误再次出现,请访问以下官方文档:
https://codeigniter.com/user_guide/libraries/email.html
nzkunb0c5#
在与同样的问题斗争了几个小时后,我终于决定改变我的配置,通过不同的服务器发送。由于某种原因,我原来的服务器会发送到一些地址,但不是其他地址(在同一个域)。一旦我改变为sendgrid,它就像预期的那样工作。
如果没有得到预期的结果,请尝试其他smtp服务器。问题可能不是您的代码...
py49o6xq6#
我有同样的问题,我尝试下面的代码,而不是Codeignitor的邮件功能。
它的工作和邮件发送到电子邮件地址。该邮件已发送已创建的电子邮件地址(我认为)。在我的情况下,它是:
所以我复制这个电子邮件地址,并尝试与下面的代码。
而且它工作得很好。似乎有些服务器需要已经创建的电子邮件地址来发送电子邮件,而有些则不需要。
希望这是明确的和有帮助的。
hgtggwj07#
最近,通过谷歌SMTP发送电子邮件可能是非常棘手的,由于他们的安全检查。
验证:
1.您的服务器上有rDNS,它与您的服务器IP匹配
1.对您用来发送电子邮件的电子邮件禁用两步验证(在Google设置中)
1.在您用来发送电子邮件的电子邮件上启用IMAP和POP(在Google设置中)
1.在您用来发送电子邮件的电子邮件上允许使用不太安全的应用程序(在Google设置中)
按如下方式更改配置项设置:
我希望这将保存你的2天,我一直在这个问题上挣扎。
ocebsuys8#
我已经花了几个小时试图改变端口,在php.ini文件中启用ssl扩展等没有任何工作,只结束了一个消息SMTP服务器没有正确配置.我使用WAMP作为本地主机,当我关闭我的防病毒avast相同的配置工作!!!发送successfully.so它可能是您的防病毒程序阻止在本地机器上.