2015-03-15 3 views
2

Это мой код:Codeigniter электронной почты проблема с Gmail

$this->email->from('[email protected]', 'Your Name'); 
$this->email->to('[email protected]'); 
$this->email->cc('[email protected]'); 

$this->email->subject('Email Test'); 
$this->email->message('Testing the email class.'); 

$this->email->send(); 
echo $this->email->print_debugger(); 

Это результат эхо:

Your message has been successfully sent using the following protocol: mail 

From: "Your Name" <[email protected]> 
Return-Path: <[email protected]> 
Cc: [email protected] 
Reply-To: "[email protected]" <[email protected]> 
X-Sender: [email protected] 
X-Mailer: CodeIgniter 
X-Priority: 3 (Normal) 
Message-ID: <[email protected]> 
Mime-Version: 1.0 
Content-Type: text/plain; charset=utf-8 
Content-Transfer-Encoding: 8bit 
=?utf-8?Q?Email_Test?= 
Testing the email class. 

Я тестирую контактную форму. В первой попытке я получил сообщение, даже если я получил это сообщение в GMail аккаунт "This message may not have been sent by: [email protected]"

Я попытался с помощью функции почты из PHP:

$to = "[email protected]"; 
$subject = "My subject"; 
$txt = "Hello world!"; 
$headers = "From: [email protected]" . "\r\n" . 
"CC: [email protected]"; 

Но я не получил ни одного письма. Что мне делать ? Что я делаю не так ?

UPDATE:

 $config['protocol'] = 'sendmail'; 
     $config['charset'] = 'iso-8859-1'; 
     $config['wordwrap'] = TRUE; 
     $config['priority'] = 1; 

     $this->email->initialize($config); 
     $this->email->from('[email protected]', 'Your Name'); 
     $this->email->to('[email protected]'); 
     $this->email->cc('[email protected]'); 

     $this->email->subject('Email Test'); 
     $this->email->message('Testing the email class.'); 

     $this->email->send(); 
     echo $this->email->print_debugger(); exit(); 

ответ

0

Если порт 25 открыт, электронная почта должна быть sendable. Некоторым поставщикам электронной почты требуется установить mx record в DNS-записи домена электронной почты от отправителя, чтобы отправлять поддельные электронные письма отправленных неавторизованных отправителей.

Я не уверен, что gmail имеет это требование.

Если вы хотите поймать эту проблему, вы переконфигурируете записи DNS example.com, чтобы содержать IP-адрес своего сервера. Другая возможность заключается в отправке сообщения электронной почты с использованием forign smtp-сервера вместо внутреннего сервера sendmail. Я сделал опыт, что это может быть медленным (на большой webabbplication).

Как found on google, вы можете использовать с codignither для записи протокола в конфигурации почты также: 'sendmail'.

EDIT:

"Это сообщение не может быть послан: [email protected]"

Это может свидетельствовать о том, что Google не доверяет отправляющего сервера.

+0

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

+0

Ваш не локальный компьютер должен иметь свой IP-адрес в dns-записях example.com. Вы можете попробовать отправить мне по электронной почте. jakob -dot- eichler [at] altergear -dot- net, потому что мой сервер не проверяет снова действительные записи mx. Сообщите мне, когда вы отправили письмо, поэтому я могу удалить свой адрес электронной почты. Даже если запись A домена указывает на почтовый сервер, ваша запись mx должна быть установлена. –

+0

Пожалуйста, проверьте мое обновление в моем сообщении. Я все еще не получаю никаких писем :( –