2014-12-03 2 views
0

У меня есть простой элемент управления на моем сайте. Он основан на сеансе php. Если пользователи могут войти в систему, сменить пароль, запросить новый пароль, выйти из системы. Все эти функции хорошо работают, когда я выполняю на своем ПК. Запрос на новый пароль работает отлично, а почта отправлена ​​успешно, новый пароль получен по почте.PHPMailer, SMTP Ошибка Не удалось подключиться к узлу smtp

Если я пытаюсь запросить новый пароль на мобильном телефоне (iPhone) (открылся веб-сайт через локальный ip), я получаю следующую ошибку. Ошибка SMTP. Не удалось подключиться к SMTP-хосту. Почта не отправлена, повторите попытку !. Но, когда я делаю то же самое в своем компьютере, почта была успешно отправлена. Когда я пытаюсь использовать samsung mobile (S4), он работает когда-то, а иногда и ошибкой.

Функция mymail получает адрес, тему, сообщение и адрес от вызова в другом файле php. Сообщение содержит имя пользователя и новый пароль, и это html-код.

Я объясню вам ясно с кодом ..

Это send_mail.php. Функция «mymail» вызывается из другого php-файла.

<?php 
//include phpmailer 
require_once ('class.phpmailer.php'); 
function mymail($mto, $msub, $mbody, $mfrom) { 
$mail = new PHPMailer(); 
$mail -> IsSMTP(); 
$mail -> SMTPAuth = true; 
$mail -> SMTPSecure = "tls"; 

$mail -> Host = "email-smtp.us-west-2.amazonaws.com"; 
$mail -> Username = "Provided by Amazon SES"; 
$mail -> Password = "Provided by Amazon SES"; 

$mail -> SetFrom("$mfrom", ''); 
//from (verified email address) 
$mail -> Subject = "$msub"; 
$body = "$mbody"; 
$body = eregi_replace("[\]", '', $body); 
$mail -> MsgHTML($body); 
$mail -> AddAddress("$mto", ""); 

if ($mail -> Send()) { 
    return 1; 
} else { 
    echo "<br> Mail not sent, try again!"; 
    return 0; 
} 
} 
?> 

И, да, я отправляю почту с подтвержденным электронным письмом в Amazon SES. Я попытался отредактировать PHP-код. Удалена функция sha1 из другого php-файла и не используется. Я думаю, что проблема заключается в этой функции. Вообще-то php является серверной, но будет ли процессор php работать по-разному при доступе с мобильного или ПК? Я пробовал вчера вечером. Сделано достаточно исследований в Google. Заранее спасибо.

+1

Существует огромное количество дубликатов этого вопроса. Почти все они могут быть решены простым [чтением документов, которые предоставляет PHPMailer] (https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). Вы также используете старую версию PHPMailer. Как говорит @sanki, вы также должны установить 'Port = 587'. – Synchro

+1

Спасибо, я обновил, но проблема не в обновлении. Здесь введенное письмо учитывает регистр. В моем мобильном телефоне при вводе электронной почты первое письмо - это капитал. Это проблема! Нашел его только тогда, когда я его обновил. Я проследил журнал от начала до конца. Затем я понял, что вопрос чувствителен к делу. Btw Спасибо. – sailesh

ответ

0

Попробуйте обновить PHPMailer. Это должно исправить проблему

1

Try номер добавления порта:

$ mail-> Port = 587; // amazon ses port number 

В дополнение к этому вы можете использовать:

$mail->SMTPDebug = 1; 

Чтобы получить информацию отладки.

Это может быть из-за отсутствия поддержки SSL в PHP. Который может быть активирован с помощью:

extension=php_openssl.dll 
+0

Пробовал, не повезло! – sailesh

0

Я просто имел дело с той же самой функцией sendmail php. Некоторые из вещей, которые вы должны отметить:

  1. Некоторых сервера, как GMAIL требуют, чтобы установить некоторые настройки, прежде чем разрешить ненадежные приложения (в этом случае вашего скрипта) от входа в свою учетную запись. Вы используете amazon, но я считаю, что они работают с аналогичными настройками безопасности.

  2. Убедитесь, что у вас есть правильный номер хоста и порта.

  3. Убедитесь, что ваша форма всегда передает правильную информацию. Если одно поле не передано правильно, электронное письмо НЕ будет отправлено, тем не менее.

  4. Mobile, pc или samsung должны работать одинаково, поскольку они имеют доступ к тем же файлам, и поддержка браузера для sendmail, вероятно, такая же.

+1

Спасибо, все о чувствительном к регистру. В моем мобильном телефоне при вводе электронной почты первое письмо - это капитал. Это проблема! – sailesh

0

Я решил, это очень просто.

Электронная почта здесь чувствительна к регистру! Попытка изменить начальное письмо от столицы до малого. Это фиксированная.Спасибо всем, кто пытался ответить на этот вопрос!

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