Я установил мой контроллер и мою контактную форму. Но когда я нажимаю «Отправить» на моей странице контакта, я не получаю никаких ошибок, но не получаю никаких сообщений. Может ли кто-нибудь помочь мне понять, почему я фактически не получаю письмо? Я ценю любую помощь. Вот мой код для контроллера:
<?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>
включите php_openssl.dll
в файле php.ini
и попробуйте использовать gmail. Ответ Паскаля Скрута или Омада будет работать. Не забудьте перезапустить локальный сервер после редактирования в файле php.ini
.
$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();
Если это поможет сначала настроить класс электронной почты
$config['protocol'] = 'sendmail'; $config['mailpath'] = '/usr/sbin/sendmail'; $config['charset'] = 'iso-8859-1'; $config['wordwrap'] = TRUE; $this->email->initialize($config);
Попробуйте добавить этот код в функцию email-> send (), чтобы узнать, что такое ответ
Измените $this->email->send();
к
if ( ! $this->email->send()) { echo 'Some error in sending email'; }
Если строка ошибки не отвечает, проблема не связана с CI, возможно, с почтовым сервером.
Попробуйте использовать 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();
Я также придерживался этой же проблемы, но я считаю, что все происходит успешно в gmail, но только электронная почта не идет.
если я пришлю $email = $this->input->post('useremail');
это не происходит в gmail. Это шоу-почта отправляется успешно или когда-либо вы проходите условие «если», но почта не приходит в почтовый ящик. Но если я передаю что-то еще, например, пароль для имени телефона или любую вещь, все идет успешно. Есть ли ограничение в CI или php для электронной почты. Потому что я отправляю html-контент на сервер, но только электронная почта не идет. Еще одна вещь, которую отправляют все, включая электронную почту, но через локальный хост, но я нахожусь на своем веб-сайте по хостингу и настраиваю все, и все идет отлично, но просто электронная почта не проходит по форме,
Если у кого-нибудь есть представление об этом – как включить электронную почту в контактную форму, тогда просьбы стригут ваши знания со мной.