2017-10-17 208 views
0

我敢肯定,這將是一個簡單的解決方案,但是當我使用我的codeigniter電子郵件表單(我在本地使用xampp)它只會在我輸入自己的電子郵件地址時發送電子郵件在形式上 - 這顯然我希望人們輸入自己的。如果我從sendemail.ini auth_username部分中刪除了我的電子郵件,那麼整個事情就會停止,所以我相信這與此有關。如果我在表格中輸入我自己的電子郵件,它會得到很好的交付。任何想法是什麼問題在這裏?Codeigniter電子郵件只適用於我的電子郵件

我的控制器

<?php 
class Contact extends MX_Controller 
{ 

function index() { 

    if (!isset($data['page_title'])) { 
     $data['page_title'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire'; 
    } 

    if (!isset($data['keywords'])) { 
     $data['keywords'] = 'Nails, Weddings, Parties, Beauty, Nailcare'; 
    } 

    if (!isset($data['description'])) { 
     $data['description'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire'; 
    } 

    $data['query'] = $this->get_where(1); 
    $data['querytwo'] = $this->get('page_headline'); 
    $data['message'] = ""; 

    $this->load->view('pages/header.php', $data); 
    $this->load->view('contact/contact_view', $data); 
    $this->load->view('pages/footer.php', $data); 
} 

function send_email() { 

    if (!isset($data['page_title'])) { 
     $data['page_title'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire'; 
    } 

    if (!isset($data['keywords'])) { 
     $data['keywords'] = 'Nails, Weddings, Parties, Beauty, Nailcare'; 
    } 

    if (!isset($data['description'])) { 
     $data['description'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire'; 
    } 

    $data['query'] = $this->get_where(1); 
    $data['querytwo'] = $this->get('page_headline'); 

    $this->form_validation->set_rules("name", "Name", "required|alpha_numeric_spaces"); 
    $this->form_validation->set_rules("email", "Email", "required|valid_email"); 
    $this->form_validation->set_rules("message", "Message", "required"); 

    if ($this->form_validation->run() == FALSE){ 

     $data["message"] = ""; 

     $this->load->view('pages/header.php', $data); 
     $this->load->view('contact/contact_view', $data); 
     $this->load->view('pages/footer.php', $data); 
    } else { 
     $data["message"] = "Your email has been successfully sent, thank you."; 



     $this->load->library("email"); 

     $this->email->from(set_value("email"), set_value("name")); 
     $this->email->to("[email protected]"); 
     $this->email->subject("Website Enquiry for Love Your Nails"); 
     $this->email->message(set_value("message")); 

     $this->email->send(); 

     echo $this->email->print_debugger(); 
+1

你不會是能夠從本地主機發送郵件沒有特殊的設置或使用像Mailgun。 – Adam

回答

0

從本地機器交付的郵件是一場賭博。您的電子郵件將被傳遞,但由於您未註冊爲郵件服務器(粗略地說 - 有,在這裏參加許多規則),您的電子郵件是最有可能最終在垃圾郵件或者根本沒有得到接受。

有一種叫做「分數」發送電子郵件時。這是所有保證您不是垃圾郵件發送者的因素的組合。每個電子郵件服務都有一個最小的「分數」,低於這個分數就拒絕接受電子郵件。

在你的情況下,它看起來像hotmail.co.uk接受分數較低的電子郵件和當別人進入他們的電子郵件,他們拒絕從您的計算機中的郵件。

換句話說:你需要一個電子郵件服務器發送信任郵件。 或者:

  • 運行你自己的
  • 租一個
  • 使用SMTP服務器
+0

好的,我其實並沒有試圖從我的本地發送真實世界的電子郵件,只是在開發中,但從它的聲音,也許我應該等待,直到我準備好上線,並確保它一次正常工作在我的託管? – DMinch

+0

@DMinch聽起來不錯。如果它適用於一封電子郵件,如果服務器配置正確,它將與其他所有人一起工作。 – DreamWave

相關問題