У меня есть простое управление пользователями на моем сайте. Он основан на сессии php. Где пользователи могут войти, изменить пароль, запросить новый пароль, выйти из системы. Все эти функции хорошо работают, когда я выполняю на своем ПК. Запрос на новый пароль работает нормально и почта успешно отправлена, новый пароль получен по почте.
Если я пытаюсь запросить новый пароль в мобильном телефоне (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. Заранее спасибо.
Попробуйте обновить PHPMailer. Это должно решить проблему
Попробуйте добавить номер порта:
$ mail-> Port = 587; // amazon ses port number
В дополнение к этому вы можете использовать:
$mail->SMTPDebug = 1;
Чтобы получить отладочную информацию.
Это также может быть связано с отсутствием поддержки SSL в PHP. Который может быть включен с помощью:
extension=php_openssl.dll
Я просто имел дело с той же функцией php sendmail. Некоторые из вещей, которые вы должны отметить:
Некоторые серверы, такие как GMAIL, требуют, чтобы вы установили некоторые параметры, прежде чем разрешить ненадежным приложениям (в данном случае вашему скрипту) войти в свою учетную запись. Вы используете Amazon, но я считаю, что они работают с аналогичными настройками безопасности.
Убедитесь, что у вас есть правильный хост и номер порта.
Убедитесь, что ваша форма всегда передает правильную информацию. Если одно поле не передано правильно, электронная почта, тем не менее, не будет отправлена.
Мобильный компьютер, ПК или Samsung должны работать одинаково, поскольку они имеют доступ к одним и тем же файлам, и поддержка sendmail в браузере, вероятно, одинакова.
Я решил это, это очень просто.
Адрес электронной почты здесь чувствителен к регистру! Попробовал изменить начальную букву с прописной на маленькую. Это исправлено. Спасибо всем, кто пытался ответить на вопрос!