2013-09-30 3 views
1

В настоящее время у меня есть контактная форма на моем веб-сайте, которая отправляет уведомление по электронной почте при отправке. Он отлично работает на моем конце и даже когда я посылаю его извне друзьям в качестве теста, который они получают.CodeIgniter E-mail не принимается

Мой клиент, который находится во Франции, похоже, не может получить это письмо вообще, и я понятия не имею, почему. Есть ли что-то, что мне нужно сделать, чтобы они получили его? Я думал, что это что-то на их конце, но они абсолютно непреклонны в том, что это не так, и что это проблема с моим кодом. Я пробовал разные адреса электронной почты для них с разными доменами и до сих пор не повезло!

$this->load->library('parser'); 
$config['mailtype'] = 'html'; 
$config['charset'] = 'utf-8'; 

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

$data = array(
    'first_name' => $this->input->post('first_name'), 
    'last_name' => $this->input->post('last_name'), 
    'email' => $this->input->post('email'), 
    'phone' => $this->input->post('phone'), 
    'message' => $this->input->post('message') 
); 

$body = $this->parser->parse('html_email', $data, true); 

$this->email->from('[email protected]', 'Duparc'); 
$this->email->to('[email protected]'); 
$this->email->subject('Test Email');   
$this->email->message($body); 
$this->email->send(); 
+0

Возможно, электронное письмо отправляется, но в папке со спамом. –

ответ

1

По моему мнению, проблема не исходит от CodeIgniter. Предполагая, что почта не попала в спам-бокс, поставщик вашего клиента, вероятно, отклоняет ваше сообщение по другой причине. Одной из причин, по которым я могу сразу подумать, является то, что вы, вероятно, пытаетесь отправить сообщение из домена (например, test.com), из которого вам запрещено. Мой совет начинает пытаться отправить электронное письмо другому инструменту вашему французскому клиенту (любому клиенту sendmail или постфиксному клиенту) и посмотреть, получит ли он его.

Если это удастся, проблема возникает, вероятно, из вашего поддельного письма (поэтому попробуйте использовать действительное доменное имя). Иногда его полностью удалит, и его можно будет заменить внешним IP-адресом.

Если нет, проблема возникает из конфигурации вашего веб-сервера. У меня возникла эта проблема с использованием постфикса, где я должен был явно указать параметр конфигурации "General Options" > "What domain to use in outbound mail" для моего доменного имени, чтобы его приняли капризный сервер, который молча отпустил нашу почту.

Если ничего не работает, вы также можете использовать другой почтовый сервер, который, к счастью, может исправить проблему. Вот код, который я использовал для принудительного использования CodeIgniter с помощью sendmail:

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$this->email->initialize($config); 
+1

Спасибо за ваш ответ, они в настоящее время ищут его, поскольку я пытался отправить его с одним из своих личных адресов электронной почты, и он работает, поэтому теперь проверяет другую учетную запись электронной почты. –

Смежные вопросы