2013-06-06 24 views
5

Tôi đã thiết lập bộ điều khiển và biểu mẫu liên hệ của tôi đã được thiết lập. Nhưng khi tôi nhấp vào "Gửi" trên trang liên hệ của tôi, tôi không nhận được lỗi nhưng tôi không nhận được email. Bất cứ ai có thể giúp tôi tìm ra lý do tại sao tôi không thực sự nhận được email? Tôi đánh giá cao sự giúp đỡ nào. Đây là mã của tôi cho bộ điều khiển:Làm cách nào để gửi email thành công trong biểu mẫu liên hệ qua CodeIgniter?

<?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('[email protected]'); 
     $this->email->cc('[email protected]'); 
     $this->email->bcc('[email protected]'); 
     $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'); 
    } 
} 

Và đây là mã của tôi để xem trang liên lạc của tôi:

<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> 
+1

Trước tiên, hãy đảm bảo bạn đã thiết lập máy chủ SMTP để gửi email chính xác. –

+0

Trình gỡ lỗi lặp lại điều gì? –

+0

Đầu ra là chính xác này: Thông điệp của bạn đã được gửi thành công bằng cách sử dụng giao thức sau: mail From: "Your Name" Return-Path: Cc: [email protected] Bcc: họ @ their- example.com Trả lời: "[email protected]" X-Người gửi: [email protected] X-Mailer: CodeIgniter X-Mức độ ưu tiên: 3 (Bình thường) ID thư: <51b0de09bea00 @ gd. com> Phiên bản Mime: 1.0 Loại nội dung: văn bản/đồng bằng; charset = utf-8 Content-Transfer-Encoding: 8bit =? utf-8? Q? Email_Test? = Tên tôi isdfdfdf, Im đang kiểm tra lớp email này. Email của tôi là [email protected] Số điện thoại của tôi là Đây là thông điệp của tôi dfdfdfdfdfsdafsafsdfsfdsfdsfsdf Cảm ơn !! –

Trả lời

1

phép php_openssl.dll trong php.ini tập tin và thử sử dụng gmail. Câu trả lời của Pascal Spruit hoặc Omade sẽ hoạt động. Đừng quên khởi động lại máy chủ cục bộ sau khi chỉnh sửa trong tệp php.ini.

0

Nếu nó giúp thử để cấu hình lớp email đầu tiên

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$config['charset'] = 'iso-8859-1'; 
$config['wordwrap'] = TRUE; 

$this->email->initialize($config); 

Thử để thêm mã này xung quanh chức năng email-> send() để xem phản hồi là gì

Thay đổi $this->email->send(); Để

if (! $this->email->send()) 
{ 
    echo 'Some error in sending email'; 
} 

Nếu chuỗi lỗi không lặp lại thì vấn đề không phải với CI, có thể là với máy chủ thư.

+0

Cảm ơn bạn đã đề xuất, nhưng tôi không nhận được bất kỳ đầu ra nào. Khi tôi nhấp vào "gửi", trang Firefox xuất hiện cho biết: Tài liệu hết hạn Tài liệu này không còn khả dụng nữa. Tài liệu được yêu cầu không có sẵn trong bộ nhớ cache của Firefox. –

+1

Thử gửi email đến gmail. Một số máy chủ có thể đang chặn email kiểm tra. –

+0

Tôi đã gửi nó tới gmail. Nó vẫn không hoạt động. –

0

Hãy thử sử dụng gmail

$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'password', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', config); 
$this->email->from('[email protected]', 'George'); 
$this->email->to('[email protected]'); 
$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(); 
1
$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'yourpassword', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', $config); 
$this->email->from('[email protected]', 'Jodie'); 
$this->email->to('[email protected]'); 
$this->email->subject('testing email'); 
$this->email->message('This shows the email worked'); 
$this->email->send(); 
echo $this->email->print_debugger(); 
0

Tôi cũng bị mắc kẹt với cùng một vấn đề này nhưng tôi tìm ra một điều mọi điều xảy ra thành công trên gmail nhưng chỉ email không đi.

nếu tôi gửi $email = $this->input->post('useremail'); không có trên gmail. Nó hiển thị thư gửi thành công hoặc những gì bạn đã bao giờ vượt qua trên "nếu" điều kiện nhưng thư không đến trong hộp thư. Nhưng nếu tôi vượt qua bất kỳ điều gì khác như mật khẩu điện thoại tên hoặc bất cứ điều gì, đó là tất cả đi thành công. Có bất kỳ hạn chế nào trong CI hoặc php cho email không. Vì tôi gửi nội dung html thành công trên máy chủ nhưng chỉ email không được gửi. Một điều nữa gửi đi bao gồm email nhưng thông qua máy chủ lưu trữ cục bộ nhưng tôi lên trang web của tôi trên máy chủ lưu trữ và định cấu hình mọi thứ và mọi thứ đang diễn ra tuyệt vời nhưng chỉ cần gửi email không qua biểu mẫu,

Nếu có bất kỳ ý tưởng nào về điều này- làm thế nào để bao gồm email trên hình thức liên lạc, sau đó lời cầu xin cắt kiến ​​thức của bạn với tôi.

+0

Tôi chưa nhận được giải pháp đầy đủ nhưng nếu bạn muốn kiểm tra thì hãy comment $ email = $ this-> input-> post ('email '); và cũng loại bỏ phần tin nhắn mẫu, sau đó kiểm tra, tôi có thể nhận được thư trên hộp email của bạn không. –