【发布时间】:2013-08-01 16:56:38
【问题描述】:
我不知道为什么如果我尝试使用 CI 电子邮件类它不发送电子邮件,而如果我使用原生 PHP 邮件()类可以工作。
必须注意,有时我会收到“已发送电子邮件”,而实际上并未发送,有时我会收到错误消息“我的服务器未设置”。
我试图弄清楚如何设置它,但是……什么都没有……
控制器代码如下:
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
}
【问题讨论】:
-
是的。我现在想知道这是否是在线完成的,“来自电子邮件”是否必须是域电子邮件? (即:info@mydomain.it)?
-
我会说是的。否则,您必须是域的 SPF 记录中受信任的发件人。大多数 [read: good] 电子邮件提供商在建立与 SMTP 服务器的连接以发送邮件之前都需要进行身份验证。
-
太棒了。它适用于域地址。现在...有没有办法为外部地址设置 ftp?我尝试在数组中使用电子邮件首选项,但这不起作用,它只是加载缓慢,没有任何反应。
-
用于电子邮件首选项的 FTP? That's another class all together.
标签: php codeigniter email