我正在尝试创建一个“联系我们”表单,访问者可以通过该表单向网站所有者发送电子邮件。
到目前为止,如果填写表单的访问者使用gmail地址,我的表单就可以了。但是一旦他们使用雅虎电子邮件地址,收件人(网站所有者)就不会收到邮件
下面是我如何做表格
控制器
public function send_email(){
$data = $_POST;
$new = $this->base_model->send_email($data);
$this->session->set_flashdata("email_status","Message successfully sent");
redirect(base_url("contact"));
}
模型
public function send_email($email_data)
{
$from = $email_data['email'];
$subject = $email_data['subject'];
$message = $this->load->view("emails/message",$email_data,TRUE);
$config['crlf'] = "\n";
$config['mailtype'] = "html";
$config['protocol'] = "sendmail";
$this->load->library('email');
$this->email->initialize($config);
$this->email->from($from,$email_data['name']);
$this->email->to("site owner email address goes here");
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();
return $this->email->print_debugger();
}
视图
<?php
$attributes = array("id"=>"form_req");
echo form_open("send_email",$attributes);
?>
<div class="controls">
<label>Name</label>
<input type="text" name="name" class="span12 req">
</div>
<div class="controls">
<label>Email</label>
<input type="text" name="email" class="span12 req">
</div>
<div class="controls">
<label>Subject</label>
<input type="text" name="subject" class="span12 req">
</div>
<div class="controls">
<label>Message</label>
<textarea name="message" class="span12 req"></textarea>
</div>
<button class="btn"><i class="fa fa-send"></i> Send</button>
<?php
echo form_close();
?>
我错过了什么吗?或者有解决方法吗?
答案 0 :(得分:1)
是否有任何理由要求电子邮件“来自”填写表单的电子邮件地址?我过去曾遇到过垃圾邮件过滤器问题,雅虎就是其中之一,垃圾邮件发送电子邮件的网站发送电子邮件的域名与电子邮件“来自”的电子邮件地址不符。我想有充分的理由。雅虎可能会在它到达普通的垃圾邮箱之前丢弃这种危险的“垃圾邮件”。
如果您绝对希望所有者能够直接回复该电子邮件,我会尝试将电子邮件始终发送到noreply@your-domain-here.com并添加对标题的回复。
编辑: 找到一个类似问题的旧问题,这表明更改电子邮件应解决它:Everytime my mail goes to spam in phpmailer