我已经设置了我的控制器和我的联系表单。但是当我点击我的联系页面上的“提交”时,我没有收到任何错误,但是我没有收到任何电子邮件。任何人都可以帮我弄清楚为什么我实际上没有收到电子邮件?我感谢任何帮助。这是我的控制器代码:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
$this->template->build('home');
}
public function email() {
$name = $this->input->post('name');
$email = $this->input->post('email');
$phone_number = $this->input->post('phone_number');
$message = $this->input->post('message');
$this->load->library('email');
$this->email->from($email, 'Your Name');
$this->email->to('anish@develop.io');
$this->email->cc('another@another-example.com');
$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test');
$this->email->message(
'My name is'.$name.', Im testing this email class. My email is '.$email. '. My Phone number is '.$phone_number.
' This is my message '.$message. ' Thanks!!'
);
$this->email->send();
echo $this->email->print_debugger();
$this->template->build('home');
}
}
这是我的联系页面视图的代码:
<div class="inner-content" id="contact-content">
<title>CSS3 Contact Form</title>
<div id="contact">
<h1>Send an email</h1>
<form method="post" action="/home/email">
<fieldset>
<label for="name">Name:</label>
<input name="name" id="name" type="text" placeholder="Enter your full name">
<label for="email">Email:</label>
<input name="email" id="email" type="email" placeholder="Enter your email address">
<label for="message">Message:</label>
<textarea name="message" id="message" placeholder="Type your message here..."></textarea>
<input type="submit" value="Send message">
</fieldset>
</form>
</div>
</div>
答案 0 :(得分:1)
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'yourname@gmail.com',
'smtp_pass' => 'yourpassword',
'mailtype' => 'html',
'starttls' => true,
'newline' => "\r\n"
);
$this->load->library('email', $config);
$this->email->from('youremail@gmail.com', 'Jodie');
$this->email->to('toemail@gmail.com');
$this->email->subject('testing email');
$this->email->message('This shows the email worked');
$this->email->send();
echo $this->email->print_debugger();
答案 1 :(得分:1)
在php_openssl.dll
文件中启用php.ini
并尝试使用gmail。 Pascal Spruit或Omade的答案将起作用。在php.ini
文件中编辑后,不要忘记重新启动本地服务器。
答案 2 :(得分:0)
如果有助于尝试首先配置电子邮件类
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
尝试在email-&gt; send()函数周围添加此代码以查看响应是什么
将$this->email->send();
更改为
if ( ! $this->email->send())
{
echo 'Some error in sending email';
}
如果错误字符串没有回显,则问题不在于CI,它可能与邮件服务器有关。
答案 3 :(得分:0)
尝试使用gmail
$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', config);
$this->email->from('email@gmail.com', 'George');
$this->email->to('email@gmail.com');
$this->email->subject('hey this is an email');
$this->email->message('this is the content of the email');
$this->email->send();
echo $this->email->print_debugger();
答案 4 :(得分:0)
我也遇到了同样的问题,但我想知道在gmail上成功发生的一件事情,但只有电子邮件不会发生。
如果我发送的内容$email = $this->input->post('useremail');
不是gmail的话。它显示邮件发送成功或者你传递的内容&#34;如果&#34;条件但邮件不在邮箱中。但是,如果我传递任何其他东西,如姓名电话密码或任何东西,这一切都成功。
CI或php是否对电子邮件有任何限制。
因为我在服务器上成功发送html内容,但只有电子邮件不能发送。
还有一件事情,包括电子邮件,但通过本地主机,但我是我的网站上的hostinger和配置一切,一切都很好,但只是电子邮件没有通过表格,
如果有任何人对此有任何想法 - 如何在联系表格中包含电子邮件,那么请求与我分享您的知识。