2010-09-09 4 views
1

У меня есть почтовый отправитель с электронной почтой электронной почты Codeigniter.Почта не доставлена ​​на адрес gmail или hotmail

Все работает нормально, пока пользователь не укажет адрес gmail или hotmail в качестве своего адреса.

например

$email = $this->input->post('[email protected]'); 

Это просто обратный адрес для меня, чтобы ответить. Само письмо отправляется с учетной записи электронной почты Godaddy.

Мне интересно, есть ли у кого-то подобные проблемы с электронной почтой электронной почты codeigniter или хостингом Godaddy, где просто указывать адрес электронной почты, чтобы сообщения не доставлялись.

Отладчик не показывает ошибок при отправке формы. Если я изменил значение адреса электронной почты пользователей перед отправкой электронной почты, например. string замените gmail на xgmail, почта отправляется безупречно.

Вот мой конфигурационный массив

'protocol' => 'sendmail', 
'smtp_host' => 'smtpout.secureserver.net', 
'smtp_port' => 25, 
'smtp_user' => '[email protected]', 
'smtp_pass' => 'password', 
'mailtype' => 'text'); 

Я попытался Gmail и GoDaddy как smtp_hosts. Оба раза, когда

$email = $this->input->post('email'); 

- это адрес gmail или hotmail, почтовое отправление которого не доставляется.

Ive расчесывал сеть для ответов, но, похоже, не обнаружил подобных проблем.

EDIT: попытался проясниться.

+0

В какой момент именно делает отправки электронной почты не работает (и как вы знаете) ?Я знаю, что функция codeigniter для отправки почты возвращает логическое значение, это все, что вы уходите? – Matthew

+0

Theres нет уведомления о неудаче. Просто не доставляется электронное письмо, когда пользователь указывает адрес gmail или hotmail в качестве ответа на адрес – chris

+0

. Пробовали ли вы какие-либо другие почтовые провайдеры, например. ваш частный почтовый сервер? Имеете ли вы доступ к своим журналам smtp-сервера, которые обрабатывают отправку (или все, что вы используете)? – Residuum

ответ

0

Он не отправляется или не доставляется? Две разные вещи.

Если он не доставлен, фильтры спама gmail/hotmail могут фильтровать вашу электронную почту. Вы проверили свой спам-входящий?

Если сообщение не отправлено, письмо может быть неверным? Каков ответный код ответа SMTP? это 5xx?

Я хотел прокомментировать, а не «Ответ», но, видимо, я пока не могу. (извините)

+0

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

0

ОК, вы пытаетесь отправить электронную почту через SMTP-сервер Gmail, но вы неправильно установили протокол. Установите протокол в smtp и соответствующим образом настройте имя хоста и порт.

+0

cuz прямо сейчас его настройка для электронной почты Godaddy. – chris

+0

его смущает объяснить. Весь адрес электронной почты пользователя - это поле, которое идентифицирует их собственное электронное письмо. Письмо отправляется с моего адреса на мой адрес, но по какой-то причине то, что они указывают в качестве своего собственного письма, влияет на доставку сообщений ... – chris

+0

Возможно, SMTP-сервер Gmail и sendmail Godaddy принимают все электронные письма, но не ретранслируют электронные письма на соответствующий хост. Можете ли вы настроить какой-либо другой почтовый сервер для справки, любой сервер будет делать, afaik даже XAMPP можно настроить как почтовый сервер. – Residuum

0

У меня была такая же проблема, и после многих поисков я наконец нашел решение. Эти параметры конфигурации работают для меня:

$config['crlf'] = "\r\n"; 
$config['newline'] = "\r\n"; 
$config['protocol'] = 'smtp'; 
$config['smtp_host'] = 'relay-hosting.secureserver.net'; 
$config['smtp_port'] = '25'; 
$config['mailtype'] = 'html'; 

Примечание: нет необходимости указывать имя пользователя и пароль. Убедитесь, что отправляемое электронное письмо не содержит слишком много ссылок. Он будет отмечен как спам почтовым сервером GoDaddy.

Если он все еще не работает с этими настройками, используйте print_debugger, чтобы увидеть точный ответ от почтового сервера:

$this->email->send(); 
echo $this->email->print_debugger(); 
exit; 
Смежные вопросы