Ошибка T-Mobile 111 может возникнуть из-за неправильной настройки сетевых модулей телефона. Конфигурации сети, вызывающие ошибку, могут варьироваться от VPN до проблемных модулей RCS. Проблема возникает, когда пользователь пытается отправить текст, но не может сделать это с ошибкой 111 в сети T-Mobile. Иногда проблема ограничивается конкретным контактом.
В некоторых случаях ошибка начинала возникать после обновления ОС телефона. О проблеме сообщают на разных версиях/моделях телефонов, таких как iPhone, телефоны Android и т. д. В некоторых случаях это также влияет на способность телефона получать сообщения.
Как исправить ошибку T-Mobile 111
При использовании различных технологий в мобильной индустрии может быть много причин, которые могут вызвать ошибку 111 на T-Mobile, но мы обнаружили, что главная причина этой ошибки заключается в следующем:
- Функция RCS вашего телефона: если связь RCS между вашим телефоном и T-Mobile нарушена, это может вызвать ошибку 111, поскольку телефон может не передавать сообщения через RCS.
- Тип подключения 5G вашего телефона: вы можете столкнуться с ошибкой 111, если сигналы 5G в вашем районе нестабильны и нарушают нормальную работу вашего телефона.
- Повреждение кеша/данных приложений Messenger и Carrier Hub: клиент T-Mobile может столкнуться с ошибкой 111, если кэш/данные приложений Messenger и Carrier Hub повреждены, поскольку это повреждение может помешать отправке текстовых сообщений с вашего телефона.
- Повреждены сетевые настройки вашего телефона. Если сетевые настройки вашего телефона повреждены, это может привести к ошибке 111 на вашем телефоне, поскольку телефон не может выполнять обычную сетевую связь.
1. Включить и отключить режим полета телефона
Временный сбой связи может вызвать ошибку T-Mobile 111, а включение/выключение режима полета вашего телефона может устранить возникшую ошибку, поскольку модули связи телефона будут восстановлены. Для пояснения обсудим процесс включения и отключения режима полета на iPhone. Прежде чем продолжить, убедитесь, что на стороне T-Mobile нет сбоев, так как это также может вызвать обсуждаемую ошибку.
- Запустите настройки iPhone и включите режим полета, переключив его переключатель состояния в положение ON.Включите режим полета на вашем iPhone
- Теперь подождите минуту, а затем отключите режим полета вашего iPhone.
- Затем проверьте, устранена ли ошибка T-Mobile 111.
2. Перезагрузите телефон
Ваш телефон может отображать ошибку 111 на T-Mobile из-за временного сбоя в модулях его ОС, и перезагрузка телефона может решить проблему.
- Нажмите и удерживайте кнопку питания на телефоне и подождите, пока не появится меню питания.
- После отображения нажмите «Перезагрузить» и подождите, пока телефон перезагрузится.Перезагрузите телефон Android
- После перезагрузки проверьте, очищается ли телефон от ошибки T-Mobile 111.
- Если нет, выключите телефон и извлеките SIM-карту из телефона (в случае физической SIM-карты).Удалить SIM-карту из iPhone
- Теперь подождите 5 минут, а затем снова вставьте SIM-карту в телефон.
- Затем включите телефон и после включения проверьте, устранена ли ошибка 111.
3. Отключить уведомления о прочтении ваших сообщений
Если ваше приложение для обмена сообщениями настроено на отправку уведомлений о прочтении, но у вашего телефона или сети возникают проблемы с ретрансляцией уведомлений о прочтении, это может привести к обсуждаемой ошибке T-Mobile. В этом контексте отключение уведомлений о прочтении ваших сообщений может решить проблему.
- Запустите стандартное приложение для обмена сообщениями на своем телефоне и в правом верхнем углу нажмите на три вертикальных эллипса.
- Теперь выберите «Настройки» и откройте «Настройки чата».
- Затем отключите отправку уведомлений о прочтении, переключив переключатель в положение «ВЫКЛ.», и перейдите на главный экран вашего телефона.Отключить уведомления об отправке для T-Mobile
- Теперь проверьте, устранена ли ошибка T-Mobile 111.
4. Отключить VPN телефона
Если ваш телефон использует VPN, это может нарушить многие обычные операции телефона и вызвать непреднамеренные проблемы, такие как ошибка T-Mobile 111. В этом случае отключение VPN на вашем телефоне может устранить ошибку T-Mobile. Для иллюстрации обсудим процесс отключения VPN на iPhone.
- Запустите настройки iPhone и выберите «Основные».Откройте Общие настройки iPhone
- Теперь нажмите VPN или VPN и управление устройствами.Откройте VPN в общих настройках iPhone
- Затем отключите VPN, переключив его переключатель в положение OFF, а затем проверьте, устранена ли ошибка T-Mobile 111.Отключить VPN в настройках iPhone
- Если это не сработало и проблема возникает с определенным контактом (или набором контактов), убедитесь, что номер проблемного контакта указан в правильном международном формате, например, 00 (номер) или + (номер), например, 001234567890. или +1234567890, а не просто 1234567890.
- После того, как номера телефонов будут правильно отформатированы, проверьте, устраняет ли это ошибку 111 на T-Mobile.
5. Отключить/включить Wi-Fi и данные вашего телефона
Временный сбой связи может помешать вам правильно использовать телефон и вызвать ошибку T-Mobile 111. В этом случае отключение/включение Wi-Fi и данных телефона может решить проблему.
- Если ваш телефон подключен к сотовой сети, проверьте, решает ли проблема его подключение к сети Wi-Fi.
- Если нет, запустите настройки iPhone и откройте Wi-Fi.Откройте Wi-Fi в настройках iPhone
- Теперь отключите Wi-Fi, переключив его переключатель в положение OFF, а затем проверьте, решена ли проблема.Отключить Wi-Fi на iPhone и открыть мобильные данные
- Если это не сработало, запустите «Настройки iPhone» и откройте «Сотовая связь».
- Затем отключите сотовые данные и проверьте, решена ли проблема.Отключить сотовые данные на iPhone
- Если проблема не устранена, проверьте, устраняет ли ошибка повторное включение сотовых данных.
- Если ошибка все еще возникает, отключите Wi-Fi и сотовые данные.
- Теперь перезагрузите телефон и после перезагрузки проверьте, решена ли проблема.
- Если нет, проверьте, решает ли проблема включение сотовых данных и Wi-Fi (по одному).
6. Отключите вызовы по Wi-Fi и измените предпочтительную сеть вашего телефона.
Если в предпочтительной сети вашего телефона возникают проблемы с ретрансляцией текстовых сообщений в пункт назначения, это может вызвать ошибку. Более того, если модули вызовов Wi-Fi телефона мешают нормальному обмену текстовыми сообщениями на вашем телефоне, это также может вызвать обсуждаемую проблему. Здесь отключение вызовов Wi-Fi и изменение предпочтительной сети может решить проблему.
- Запустите настройки телефона Android и откройте «Подключения».
- Теперь выберите «Вызовы по Wi-Fi», а затем отключите «Вызовы по Wi-Fi».Отключить вызовы Wi-Fi на вашем iPhone
- После этого проверьте, нет ли на телефоне ошибки 111.
- Если нет, проверьте, решает ли проблема повторное включение вызовов по Wi-Fi.
- Если проблема не устранена, откройте номеронабиратель телефона и введите следующий код: *#*#4636#*#*
- Теперь нажмите кнопку вызова и откройте информацию о телефоне.
- Затем выберите «Установить предпочтительный тип сети» и проверьте, решает ли проблема установка предпочтительной сети для вызовов по Wi-Fi.Измените предпочтительную сеть на вашем телефоне
- Если это не сработало, проверьте, устраняет ли настройка предпочтительной сети LTE/сотовую связь ошибку T-Mobile 111.
7. Отключите RCS в настройках телефона.
RCS (Rich Communication Services), также называемая Advanced Messaging, — это функция, используемая операторами мобильной связи для предоставления своим клиентам расширенных возможностей обмена сообщениями, предоставляя возможность отправлять мультимедийные файлы большего размера, интерактивные уведомления и т. д. Если модули RCS вашего телефона выходят из строя out, то это может вызвать проблему обмена сообщениями, приводящую к ошибке TMobile 111. В этом случае отключение RCS для T-Mobile может устранить ошибку.
- Запустите стандартное приложение для обмена сообщениями на своем телефоне и откройте его настройки.
- Теперь выберите «Настройки чата» или «Сообщения» и отключите «Расширенные сообщения».Отключить расширенный обмен сообщениями для T-Mobile
- Затем перезагрузите телефон и после перезагрузки проверьте, устранена ли ошибка 111.
8. Отключите тип подключения 5G вашего телефона.
5G — это новейший стандарт в технологии мобильных телефонов, но он все еще находится на ранней стадии разработки и может вызвать множество непредвиденных проблем, если не соблюдается определенный стандарт 5G. В этом контексте отключение типа подключения 5G на вашем телефоне может решить проблему. Для иллюстрации обсудим процесс отключения 5G на iPhone.
- Запустите настройки iPhone и откройте «Сотовая связь».
- Теперь выберите «Параметры сотовой связи» и нажмите «Голос и дата».Включите параметры сотовой связи вашего iPhone
- Затем выберите LTE и перезагрузите телефон.Откройте «Голос и данные» в параметрах «Сотовые данные» в настройках iPhone.
- После перезагрузки проверьте, устранена ли ошибка 111.Установите данные iPhone в режим LTE
9. Отключить две SIM-карты на телефоне
Если вы используете телефон с двумя SIM-картами, это может привести к сбою коммуникационных модулей телефона и вызвать ошибку 111 на T-Mobile. В этом контексте отключение двух SIM-карт на телефоне может решить проблему.
- Запустите настройки телефона и откройте диспетчер SIM-карт.
- Теперь отключите другую SIM-карту (не от T-Mobile) и перезагрузите телефон.Отключить SIM-карту, отличную от TMobile, на вашем телефоне
- После перезапуска проверьте, устранена ли ошибка 111 T-Mobile.
- Если нет, запустите номеронабиратель и наберите следующий код: *#*#4636#*#*
- Теперь перейдите к Dual SIM Dual Standby и отключите его.
- Затем перезагрузите телефон и после перезагрузки проверьте, нет ли на телефоне ошибки 111 на T-Mobile.
10. Очистите кеш/данные приложений Messenger и Carrier Hub.
Ошибка T-Mobile 111 может возникнуть, если кеш и данные приложений мессенджера и оператора-концентратора повреждены, поскольку основные модули связи могут не выполняться. В этом случае очистка кешей приложений мессенджера и оператора связи может решить проблему.
Для пояснения мы обсудим процесс очистки кешей приложений для телефона Android. Прежде чем продолжить, обязательно сделайте резервную копию своих сообщений, обычно удаление данных приложения сообщений не удаляет сообщения, но на некоторых телефонах это может привести к удалению сообщений.
- Запустите настройки телефона Android и откройте Диспетчер приложений или Приложения.Откройте приложения в настройках телефона Android.
- Теперь выберите приложение Messenger (например, «Сообщения») и откройте «Хранилище».Очистить кеш сообщений в настройках телефона Android
- Затем нажмите «Очистить кэш» и нажмите кнопку «Назад».
- Теперь откройте приложение Carrier Hub и откройте его хранилище.
- После этого нажмите «Очистить кэш», а затем перезагрузите телефон.
- После перезагрузки проверьте, устранена ли ошибка 111 на T-Mobile.
- Если нет, перейдите в приложение Carrier Hub в диспетчере приложений и нажмите «Удалить».
- Затем подтвердите удаление приложения Carrier Hub и перезагрузите телефон. Если вы не можете удалить приложение Carrier Hub, поскольку оно является системным, вы можете удалить его через ADB.
- После перезапуска проверьте, устранена ли ошибка T-Mobile 111.
- Если это не сработало, перейдите к настройкам хранилища приложения Messenger в диспетчере приложений и снова нажмите «Очистить кэш».
- Затем нажмите «Очистить хранилище» или «Очистить данные», а затем подтвердите, чтобы очистить данные приложения для обмена сообщениями.Очистить хранилище сообщений в настройках телефона Android
- Теперь перезагрузите телефон и после перезагрузки проверьте, устранена ли ошибка 111 T-Mobile.
11. Повторно активируйте SIM-карту в настройках телефона.
Временный сбой связи между SIM-картой в вашем телефоне и вышкой сотовой связи T-Mobile может привести к ошибке 111. В этом случае повторная активация SIM-карты в настройках телефона может решить проблему.
- Запустите «Настройки» вашего телефона и откройте «Подключения».
- Теперь выберите Диспетчер SIM-карт и деактивируйте свою SIM-карту (в случае с двумя SIM-картами отключите обе).Отключить SIM-карту на вашем телефоне
- Затем подождите минуту и снова активируйте SIM-карту (от T-Mobile).
- После этого проверьте, устранена ли ошибка T-Mobile 111.
Вы можете столкнуться с ошибкой 111 на T-Mobile, если сетевые настройки вашего телефона повреждены. Здесь сброс настроек сети до значений по умолчанию может решить проблему. Для иллюстрации обсудим процесс сброса настроек сети на айфоне. Прежде чем продолжить, обязательно запишите информацию, необходимую для повторной настройки сети на вашем телефоне (например, учетные данные Wi-Fi или мобильные модули данных OEM).
- Запустите настройки iPhone и откройте Общие.
- Теперь выберите «Сброс», а затем нажмите «Сбросить настройки сети».Откройте сброс в общих настройках вашего iPhone
- Затем подтвердите сброс сети iPhone и после этого настройте сеть на своем iPhone (Wi-Fi или мобильные данные).Нажмите «Сбросить настройки сети» на iPhone.
- Теперь проверьте, нет ли на телефоне ошибки TMobile 111.
Если ничего из вышеперечисленного не сработало, то переключение на E-SIM может привести к сбросу ошибки 111, так как неисправная SIM-карта также может вызвать обсуждаемую ошибку. Если это невозможно, проверьте, устраняет ли замена физической SIM-карты возникшую ошибку. Если проблема не устранена, вы можете обратиться в службу поддержки T-Mobile, чтобы устранить ошибку.
I am trying to write a program for file transfer using sockets. The server end of the code is running fine. However, in the client side I get the following error
Traceback (most recent call last):
File "client.py", line 54, in <module>
uploadFiles(directory)
File "client.py", line 36, in uploadFiles
transferFile(fname)
File "client.py", line 13, in transferFile
cs.connect((HOST, 36258))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused
My code is as follows
import os
import socket
def transferFile(fname):
HOST = '127.0.0.1'
CPORT = 36258
MPORT = 36250
FILE = fname
cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cs.connect((HOST, 36258))
cs.send("SEND " + FILE)
cs.close()
ms = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ms.connect((HOST, MPORT))
f = open(FILE, "rb")
data = f.read()
f.close()
ms.send(data)
ms.close()
def uploadFiles(directory):
home = os.getenv("HOME")
folder = str(home + "/" + directory)
os.chdir(folder)
dirList = os.listdir(folder)
print dirList
for fname in dirList:
if fname.endswith('.bin'):
transferFile(fname)
os.chdir(os.getenv("HOME"))
directory = "testdownload"
if not os.path.exists(directory):
os.makedirs(directory)
os.chdir(directory)
uploadFiles(directory)
I tried looking for help on Google and other posts on Stack Overflow, none of them helped. Can someone please help me?
The line numbers may be different since I pasted only some part of the code
Just in case somebody is deperately trying to fix their problem just to realize there is nothing wrong with their reverse proxy setup:
In my case, the error persisted even after I’ve removed all location
directives but a single one that only provides static content.
The error message was caused because Nginx wasn’t able to log it’s log to the syslog server:
access_log syslog:server=10.0.1.48:514,facility=local4,tag=nginx,severity=debug,nohostname main;
Summary:
If you are using a syslog log server, make sure it is available. To test whether the error originates from the logging setup, comment out all logging configs so that Nginx falls back to the native logging scheme.
I hope this saves some people time debugging a fully valid reverse proxy config, just to fid the error somewhere else
Извините, если это дорога, по которой много ездили. Я видел другие посты об этом, но ничто в них не решило проблему, которую я имею, или зажгло лампочку, которая помогла мне решить это самостоятельно.
Вот мой код:
require 'PHPMailerAutoload.php';
$config = parse_ini_file('/path/to/file/config.ini', true);
$mail = new PHPMailer;
$mail->SMTPDebug = 3;
$mail->Debugoutput = 'html';
$mail->isSMTP();
$mail->Host = $config['host']; //smtp.office365.com
$mail->SMTPAuth = true;
$mail->Username = $config['username']; //an.existing.account@appinc.co
$mail->Password = $config['password']; //confirmed this is being passed correctly
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->From = $config['username'];
$mail->FromName = 'Website Forms';
$mail->addAddress('sales@appinc.co', 'Some Name');
$mail->addReplyTo('sender.email@somedomain.com', 'SenderFirst SenderLast');
$mail->addBCC('my.email.address@appinc.co');
$mail->isHTML(true);
$mail->Subject = 'Contact Form Submission';
$mail->Body = 'Some html here';
$mail->AltBody = 'Some alt content here';
if(!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
//perform success actions
exit();
}
Я подтвердил, что домен, имя пользователя и пароль верны и передаются правильно. Важно отметить, что это работало на нашем локальном сервере разработчика до запуска. Как только сайт был перенесен на наш хостинг-аккаунт (Hostgator), это когда он перестал работать. Я подтвердил с помощью HG, что порт 587 открыт на нашем сервере.
Вот сообщение об ошибке, которое я вижу:
Connection: opening to smtp.office365.com:587, t=10, opt=array ()
SMTP ERROR: Failed to connect to server: Connection refused (111)
SMTP connect() failed.
Message could not be sent.Mailer Error: SMTP connect() failed.
Любая помощь, которая может быть оказана, очень ценится, даже если это просто ссылка на статью, которая объясняет, почему она не будет работать сейчас, когда она находится в нашей производственной среде.
8
Решение
Ни один из ответов не сработал для меня.
Через много часов я нашел проблему, но работает только для Cpanel / WHM
- Войдите в WHM.
- Перейти к ConfigServer Security & Брандмауэр внутри плагина опция.
- Нажмите на настройку брандмауэра
- Фильтр по настройкам SMTP
- Найдите параметр SMTP_ALLOWUSER и добавьте имя пользователя учетной записи Cpanel, разделенное комой.
- Перезагрузите брандмауэр.
Если у вас нет доступа к WHM, обратитесь к своему провайдеру.
6
Другие решения
В PHP 5.5 и phpmailer есть ошибка с номером порта. Не устанавливайте номер порта (mail-> port = ….), это вызывает ошибку:
msgstr «ошибка smtp не удалось установить соединение с сервером отказано 111»
Оставьте номер порта по умолчанию 25, и он будет работать!
2
Оказывается, HG нужно было изменить настройки брандмауэра на нашем сервере. Как только они это сделали, все заработало отлично. Так что, если у вас возникла подобная проблема, я бы порекомендовал убедиться, что все правильно с вашей стороны, но затем посоветуйтесь с вашим хостинг-провайдером, чтобы узнать, что нужно сделать с их стороны.
0
Если вы используете cPanel / WHM, вам необходимо убедиться, что:
Ограничить исходящий SMTP для root, exim и mailman (FKA SMTP Tweak) — установлен в OFF. (Это можно отредактировать в разделе «Конфигурация сервера» Настройки твика (поиск: SMTP))
Если у вас также есть ConfigServer Security & Брандмауэр включен, вам нужно будет изменить конфигурацию брандмауэра. Нажмите «Настройка брандмауэра», затем выберите «Фильтровать по настройкам SMTP». Теперь найдите SMTP_ALLOWUSER и добавьте имя пользователя учетной записи cPanel, разделенное комой. Нажмите «Изменить» и перезапустите брандмауэр.
0
Есть 3 сервера.
1 mailwizz -web программа для отправки писем
2 mailwizz -web программа для отправки писем
3 почтовый сервер
оба mailwiz — по конфигурации вроде как идентичны
на почтовом сервере 587 порт открыт, ограничений на mailwizz сервера нет, все в порядке
mailwizz,ы подключаются к почтовому серверу через smtp
почтовым сервером управляет PMTA, сертификаты настроены — другой майлвиз шлет
проблема:
1 mailwizz — прекрасно коннектится по 587 к почтовому серверу и шлет письма
2 mailwizz — не как не хочет, пишет ошибку
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Connection: opening to m-spf.ru:587, timeout=30, options=array ( 'ssl' => array ( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ),)
Connection failed. Error #2: stream_socket_client(): unable to connect to postal.ru:587 (Connection refused) [/var/www/mailwizz/data/www/mailwizz.ru/apps/common/vendors/Composer/vendor/phpmailer/phpmailer/src/SMTP.php line 387]
SMTP ERROR: Failed to connect to server: Connection refused (111)
на проблемном сервере mailwizz
— панель isp manager
— PHP Version 7.3.19
— SSL Version OpenSSL/1.0.2u
openssl
OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.0l 10 Sep 2019
OpenSSL Header Version OpenSSL 1.1.0l 10 Sep 2019
Openssl default config /usr/lib/ssl/openssl.cnf
Native OpenSSL support enabled
все что про него знаю, вроде тоже самое что на другом mailwizz
Как можно мой майлвиз подружить с 587 портом моего почтового сервера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
<?php /** * SendMailSmtpClass * * Класс для отправки писем через SMTP с авторизацией * Может работать через SSL протокол * Тестировалось на почтовых серверах yandex.ru, mail.ru и gmail.com * * @author Ipatov Evgeniy <admin@ipatov-soft.ru> * @version 1.0 */ class SendMailSmtpClass { /** * * @var string $smtp_username - логин * @var string $smtp_password - пароль * @var string $smtp_host - хост * @var string $smtp_from - от кого * @var integer $smtp_port - порт * @var string $smtp_charset - кодировка * */ public $smtp_username; public $smtp_password; public $smtp_host; public $smtp_from; public $smtp_port; public $smtp_charset; public function __construct($smtp_username, $smtp_password, $smtp_host, $smtp_from, $smtp_port = 25, $smtp_charset = "utf-8") { $this->smtp_username = $smtp_username; $this->smtp_password = $smtp_password; $this->smtp_host = $smtp_host; $this->smtp_from = $smtp_from; $this->smtp_port = $smtp_port; $this->smtp_charset = $smtp_charset; } /** * Отправка письма * * @param string $mailTo - получатель письма * @param string $subject - тема письма * @param string $message - тело письма * @param string $headers - заголовки письма * * @return bool|string В случаи отправки вернет true, иначе текст ошибки * */ function send($mailTo, $subject, $message, $headers) { $contentMail = "Date: " . date("D, d M Y H:i:s") . " UTrn"; $contentMail .= 'Subject: =?' . $this->smtp_charset . '?B?' . base64_encode($subject) . "=?=rn"; $contentMail .= $headers . "rn"; $contentMail .= $message . "rn"; try { if(!$socket = @fsockopen($this->smtp_host, $this->smtp_port, $errorNumber, $errorDescription, 30)){ throw new Exception($errorNumber.".".$errorDescription); } if (!$this->_parseServer($socket, "220")){ throw new Exception('Connection error'); } $server_name = $_SERVER["SERVER_NAME"]; fputs($socket, "HELO $server_namern"); if (!$this->_parseServer($socket, "250")) { fclose($socket); throw new Exception('Error of command sending: HELO'); } fputs($socket, "AUTH LOGINrn"); if (!$this->_parseServer($socket, "334")) { fclose($socket); throw new Exception('Autorization error'); } fputs($socket, base64_encode($this->smtp_username) . "rn"); if (!$this->_parseServer($socket, "334")) { fclose($socket); throw new Exception('Autorization error'); } fputs($socket, base64_encode($this->smtp_password) . "rn"); if (!$this->_parseServer($socket, "235")) { fclose($socket); throw new Exception('Autorization error'); } fputs($socket, "MAIL FROM: <".$this->smtp_username.">rn"); if (!$this->_parseServer($socket, "250")) { fclose($socket); throw new Exception('Error of command sending: MAIL FROM'); } $mailTo = ltrim($mailTo, '<'); $mailTo = rtrim($mailTo, '>'); fputs($socket, "RCPT TO: <" . $mailTo . ">rn"); if (!$this->_parseServer($socket, "250")) { fclose($socket); throw new Exception('Error of command sending: RCPT TO'); } fputs($socket, "DATArn"); if (!$this->_parseServer($socket, "354")) { fclose($socket); throw new Exception('Error of command sending: DATA'); } fputs($socket, $contentMail."rn.rn"); if (!$this->_parseServer($socket, "250")) { fclose($socket); throw new Exception("E-mail didn't sent"); } fputs($socket, "QUITrn"); fclose($socket); } catch (Exception $e) { return $e->getMessage(); } return true; } private function _parseServer($socket, $response) { while (@substr($responseServer, 3, 1) != ' ') { if (!($responseServer = fgets($socket, 256))) { return false; } } if (!(substr($responseServer, 0, 3) == $response)) { return false; } return true; } } |
Sometimes users need to send outgoing e-mails with external SMTP servers. Most popular example is PHPMailer with its ability to use free SMTP servers, for example Gmail. Here is the short piece of code, that allows to do this:
<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require './mail/PHPMailer-master/src/Exception.php'; require './PHPMailer-master/src/PHPMailer.php'; require './mail/PHPMailer-master/src/SMTP.php'; date_default_timezone_set('Etc/UTC'); $milo="this is a test"; /** * This example shows sending a message using PHP's mail() function. */ //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); $mail->SMTPDebug = 0; //Set who the message is to be sent from $mail->setFrom('example@gmail.com', 'First Last'); //Set who the message is to be sent to $mail->addAddress('support@example.com', 'John Doe'); //Set the subject line $mail->Subject = 'PHPMailer test 2 smtp'; $mail->CharSet = 'UTF-8'; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; $mail->SMTPSecure = 'tls'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = "example@gmail.com"; //Password to use for SMTP authentication $mail->Password = "yourpassword"; $mail->msgHTML($milo); //Replace the plain text body with one created manually $mail->AltBody = $milo; //send the message, check for errors if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } ?>
If you have a Directadmin server with csf firewall installed, most probably you will get this message on execution:
SMTP ERROR: Failed to connect to server: Connection refused (111)
Let’s investigate what causes this error. First, we need to change debug level in our script to get all error messages:
$mail->SMTPDebug = 4;
Here is what we are getting:
2018-03-29 13:01:34 Connection: opening to smtp.gmail.com:587, timeout=300, options=array() 2018-03-29 13:01:37 Connection failed. Error #2: stream_socket_client(): unable to connect to smtp.gmail.com:587 (Connection refused) [SMTP.php line 326] 2018-03-29 13:01:37 SMTP ERROR: Failed to connect to server: Connection refused (111) SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
So the problem seems to be with opening port 587 – the script is even unable to connect. Let’s verify if we have this port blocked by firewall:
[root@server ~]# dmesg | grep 587
Most probably our output will look like this:
Firewall: *TCP_OUT Blocked* IN= OUT=eth0 SRC=62.210.90.101 DST=66.102.1.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=57285 DF PROTO=TCP SPT=50856 DPT=587 WINDOW=14600 RES=0x00 SYN URGP=0 UID=503 GID=505 Firewall: *TCP6OUT Blocked* IN= OUT=eth0 SRC=fe80:0000:0000:0000:fabc:12ff:fe48:effa DST=2a00:1450:400c:0c06:0000:0000:0000:006d LEN=80 TC=0 HOPLIMIT=64 FLOWLBL=0 PROTO=TCP SPT=45138 DPT=587 WINDOW=14400 RES=0x00 SYN URGP=0 UID=503 GID=505 Firewall: *TCP6OUT Blocked* IN= OUT=eth0 SRC=fe80:0000:0000:0000:fabc:12ff:fe48:effa DST=2a00:1450:400c:0c06:0000:0000:0000:006d LEN=80 TC=0 HOPLIMIT=64 FLOWLBL=0 PROTO=TCP SPT=45138 DPT=587 WINDOW=14400 RES=0x00 SYN URGP=0 UID=503 GID=505
Here’s the catch – our firewall is blocking outgoing connection through this port. We need to unlock it to continue. Here is the solution.
Open /etc/csf/csf.conf in any editor
Scroll to this line:
SMTP_BLOCK = "1"
Change it to
SMTP_BLOCK = "0"
Restart csf:
csf -r
Now you should be able to use your script without any issues.
Перейти к контенту
Error connecting to IMAP server: localhost. 111 : Connection refused
Also when I try to telnet imap I receive the following error:
telnet localhost 143
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
- php
scott_lotus
3,13521 gold badges49 silver badges69 bronze badges
asked Dec 6, 2015 at 9:04
4
-
what are you using, on your local machine, as an imap server?
Dec 6, 2015 at 9:10
-
Are you asking whether I am using ubuntu or redhat
– user5646036
Dec 6, 2015 at 9:18
-
How is this related to PHP?
Dec 6, 2015 at 9:48
-
We will be doing some configurations in dovecot.conf file and named.conf.local. This editing is done using html
– user5646036
Dec 6, 2015 at 9:51
Error connecting to IMAP server: localhost. 111 : Connection refused
Also when I try to telnet imap I receive the following error:
telnet localhost 143
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
- php
scott_lotus
3,13521 gold badges49 silver badges69 bronze badges
asked Dec 6, 2015 at 9:04
4
-
what are you using, on your local machine, as an imap server?
Dec 6, 2015 at 9:10
-
Are you asking whether I am using ubuntu or redhat
– user5646036
Dec 6, 2015 at 9:18
-
How is this related to PHP?
Dec 6, 2015 at 9:48
-
We will be doing some configurations in dovecot.conf file and named.conf.local. This editing is done using html
– user5646036
Dec 6, 2015 at 9:51
-
#1
When attempting to login to webmail, I receive the following error:
SquirrelMail
Error
Error connecting to IMAP server: localhost.
111 : Connection refused
-
#2
Is the imap server running?
Do you have a firewall blocking imap?
-
#3
I apologize for not being Linux savvy, but what command should I run at the command prompt to detremine if the IMAP server is running?
nobaloney
NoBaloney Internet Svcs — In Memoriam †
-
#4
from your server:
I have no idea how to properly disconnect; I generally do it by sending quit; it appears to take ten times before it disconnects.
Jeff
-
#5
i have:
[[email protected] custombuild]# telnet localhost 143
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
* OK Dovecot DA ready.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
Is this good?
-
#6
Hello!
you need to change localhost record in your «/etc/hosts» to
127.0.0.1 localhost localhost.localdomain
-
#7
Here is my current configuration:
127.0.0.1 localhost localhost.localdomain
1*3.***.***.1*0 server.p******s.com
Is this true?
nobaloney
NoBaloney Internet Svcs — In Memoriam †
-
#9
And Voland, if you’d look at the first post you’d see that localhost was already pointing to 127.0.0.1 when gozargah asked the original question.
gozargah, I don’t have any idea why your imap server is returning those errors. Perhaps you should reinstall (or have someone else reinstall) dovecot.
Jeff
-
#10
I know this is an old post but here is the answer
be sure that
127.0.0.1 localhost
is at the bottom of the /etc/localhost
or
Run the …htdocs/squirrelmail/configure
option 2 server settings
option A update IMAP settings
option 4 and either put 127.0.0.1 or the ipaddress of the imap server.
You will have to do the same for SMTP
Rance
Разбираем ошибки и методы их устранения.
Типовое подключение почты:
- В главном левом меню пункт «Почта».
- Выбираем подключить новую почту.
- Чаще всего мы подключаем через IMAP протокол.
- Для яндекс.почты нам надо заполнить E-mail, «Адрес IMAP сервера» = imap.yandex.ru
- Порт 993
- Обязательно включить – Защищенное соединение.
- Вводим «Логин»
- Далее «Пароль»
ВАЖНО:
- «Адрес IMAP сервера» должен быть написан именно так и без ошибок — imap.yandex.ru.
- В облачной версии есть дополнительный параметр, который нужно обязательно включить — разрешить отправку через SMTP.
Смоделируем ситуацию:
Мы намерено ошиблись в написании «Адрес IMAP сервера».
Система сразу информирует нас «красной строкой» о том, что произошла ошибка соединения с сервером.
Допустим ошибку в логине или пароле.
Система сообщит об ошибке авторизации и во вкладке «подробнее» подскажет где искать причину.
Возможно появление сообщения ошибки IMAP протокола.
Устранить ее можно в глобальных настройках Яндекс почты. Режим «шестеренка», переход в раздел «прочее», пункт левого меню столбика «Почтовые программы». По умолчанию, часто настройки протокола отключены, их надо включить.
Активируем опции:
- Протокола IMAP.
- Портальный пароль.
- Дополнительные опции –включить сервер pop.yandex.ru
- Входящие.
ВАЖНО.
Если все настройки активированы правильно, то система начитает работать и открывается режим настройки папок для синхронизации писем. Почему это нужно сделать? Если не указать папки, то не будет работать синхронизация, фильтры, поступление писем, письма клиентов будут «пропадать» и теряться.
Основные этапы подключения почты:
- Регистрация почты.
- Авторизация (обязательная).
- Включить протокол IMAP
- Включить опцию принимать портальный пароль.
- Указать верный порт.
- Включить только защищенное соединение.
Подключенные коробки Битрикс24 к Яндекс.Почте часто стали не доставлять письма. Почему?
«Коробка» все письма портала отправляет от одного физического почтового ящика и делает подмену заголовков. Т.е. Ваш менеджер пишет от своей почты, но технически почта все равно отправляется от одного пользователя.
Почтовые системы считают такие письма измененными, а сам яндекс вводит дополнительные ограничения на доставку таких писем. Получаем узкое горлышко и не стабильную работу с обоих сторон (Отправитель и Получатель).
Что можно сделать и как заставить работать «коробку» с почтой?
- Арендовать и подключить внешний SMTP-сервер.
- Отказаться от Яндекс.Почты и создать свой почтовый сервер с соответствующим техническим обслуживанием.
- Создать виртуальный SMPT-сервер на сервере портала или отдельно взятой машине.
- При этом никто Вам не мешает оставить уже существующие корпоративные Яндекс почтовые ящики только на прием входящих писем.
- Для отправки исходящих писем использовать мобильные приложения и веб-интерфейс Яндекс.
Какие особенности при работе с внешним SMTP-сервером?
- Сервисы, которые дают в аренду SMTP-сервер (услуга может называться транзакционный почтовый сервер) предъявляют жесткие требования к качеству корреспонденции и в случае превышения порога ~0,3% спам писем, настроенный вами аккаунт будет заблокирован.
- Требуется грамотно произвести настройки ДНС, корпоративного сервера портала и самого сервиса, иначе письма будут попадать в СПАМ.
Сколько стоят предлагаемые решения?
- Аренда серверов – есть бесплатные тарифы с ограничением до 10 000 писем в месяц, количества писем в день в час. Снятие ограничений и увеличение буфера решается ежемесячной платой в пределах 1 000 — 2 000 рублей.
- Решение организации собственного почтового сервера решается индивидуально и зависит от количества корпоративных почтовых ящиков и настроек.
С уважением, Лаборатория автоматизации «LOG [IN] OFF»
#sockets #imaplib #gitpod
Вопрос:
Я пытаюсь использовать библиотеку imaplib Python в GitPod.
Следуя документации, я импортировал imaplib и создал экземпляр объекта IMAP4 со следующей строкой кода:
M = imaplib.IMAP4()
Это возвращает следующее сообщение:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/imaplib.py", line 198, in __init__
self.open(host, port)
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/imaplib.py", line 303, in open
self.sock = self._create_socket()
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/imaplib.py", line 293, in _create_socket
return socket.create_connection((host, self.port))
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/socket.py", line 808, in create_connection
raise err
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/socket.py", line 796, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
Проблема в том, что imaplib не может подключиться к своему собственному сокету, и поэтому я должен каким-то образом сначала активировать этот сокет внутри GitPod?
Ответ №1:
Из документации:
класс imaplib.IMAP4(хост=», порт=IMAP4_PORT, время ожидания=Нет)
Этот класс реализует фактический протокол IMAP4. Соединение создается, и версия протокола (IMAP4 или IMAP4rev1) определяется при инициализации экземпляра. Если хост не указан, используется » (локальный хост).
Таким образом, он пытается подключиться к серверу IMAP на локальной машине. Похоже, что их нет или, по крайней мере, нет в порту 143.
Комментарии:
1. Спасибо. Итак, проблема в том, что в контейнере GitPod Docker нет сервера IMAP? Я думал, что получу доступ к своим электронным письмам с удаленного сервера IMAP (gmail) и что мне не понадобится сервер IMAP с моей стороны. Означает ли это, что эта библиотека не обеспечивает ту функциональность, которую я имел в виду (получение электронной почты)? Или я должен просто создать сервер IMAP на своем конце для связи с удаленным сервером? Большое спасибо
2. @PeterElbert: Библиотека предназначена для получения электронной почты. Вам нужен какой-то сервер для получения электронной почты. Этот сервер должен быть указан в качестве аргумента, т. е. что-то вроде imap.gmail.com. Я понятия не имею, почему вы думаете, что GitPod будет включать почтовый сервер и откуда должна поступать почта на этом сервере.
3. Понял, поэтому я передаю адрес сервера в экземпляре. В примере документации показано, что этот класс создается без аргумента, поэтому я следовал их примеру. Я думал, что передам эту информацию позже. Я не думал, что в GitPod есть почтовый сервер.
-
#1
When attempting to login to webmail, I receive the following error:
SquirrelMail
Error
Error connecting to IMAP server: localhost.
111 : Connection refused
-
#2
Is the imap server running?
Do you have a firewall blocking imap?
-
#3
I apologize for not being Linux savvy, but what command should I run at the command prompt to detremine if the IMAP server is running?
nobaloney
NoBaloney Internet Svcs — In Memoriam †
-
#4
from your server:
I have no idea how to properly disconnect; I generally do it by sending quit; it appears to take ten times before it disconnects.
Jeff
-
#5
i have:
[[email protected] custombuild]# telnet localhost 143
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
* OK Dovecot DA ready.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
* BAD Error in IMAP command received by server.
Is this good?
-
#6
Hello!
you need to change localhost record in your «/etc/hosts» to
127.0.0.1 localhost localhost.localdomain
-
#7
Here is my current configuration:
127.0.0.1 localhost localhost.localdomain
1*3.***.***.1*0 server.p******s.com
Is this true?
nobaloney
NoBaloney Internet Svcs — In Memoriam †
-
#9
And Voland, if you’d look at the first post you’d see that localhost was already pointing to 127.0.0.1 when gozargah asked the original question.
gozargah, I don’t have any idea why your imap server is returning those errors. Perhaps you should reinstall (or have someone else reinstall) dovecot.
Jeff
-
#10
I know this is an old post but here is the answer
be sure that
127.0.0.1 localhost
is at the bottom of the /etc/localhost
or
Run the …htdocs/squirrelmail/configure
option 2 server settings
option A update IMAP settings
option 4 and either put 127.0.0.1 or the ipaddress of the imap server.
You will have to do the same for SMTP
Rance
Разбираем ошибки и методы их устранения.
Типовое подключение почты:
- В главном левом меню пункт «Почта».
- Выбираем подключить новую почту.
- Чаще всего мы подключаем через IMAP протокол.
- Для яндекс.почты нам надо заполнить E-mail, «Адрес IMAP сервера» = imap.yandex.ru
- Порт 993
- Обязательно включить – Защищенное соединение.
- Вводим «Логин»
- Далее «Пароль»
ВАЖНО:
- «Адрес IMAP сервера» должен быть написан именно так и без ошибок — imap.yandex.ru.
- В облачной версии есть дополнительный параметр, который нужно обязательно включить — разрешить отправку через SMTP.
Смоделируем ситуацию:
Мы намерено ошиблись в написании «Адрес IMAP сервера».
Система сразу информирует нас «красной строкой» о том, что произошла ошибка соединения с сервером.
Допустим ошибку в логине или пароле.
Система сообщит об ошибке авторизации и во вкладке «подробнее» подскажет где искать причину.
Возможно появление сообщения ошибки IMAP протокола.
Устранить ее можно в глобальных настройках Яндекс почты. Режим «шестеренка», переход в раздел «прочее», пункт левого меню столбика «Почтовые программы». По умолчанию, часто настройки протокола отключены, их надо включить.
Активируем опции:
- Протокола IMAP.
- Портальный пароль.
- Дополнительные опции –включить сервер pop.yandex.ru
- Входящие.
ВАЖНО.
Если все настройки активированы правильно, то система начитает работать и открывается режим настройки папок для синхронизации писем. Почему это нужно сделать? Если не указать папки, то не будет работать синхронизация, фильтры, поступление писем, письма клиентов будут «пропадать» и теряться.
Основные этапы подключения почты:
- Регистрация почты.
- Авторизация (обязательная).
- Включить протокол IMAP
- Включить опцию принимать портальный пароль.
- Указать верный порт.
- Включить только защищенное соединение.
Подключенные коробки Битрикс24 к Яндекс.Почте часто стали не доставлять письма. Почему?
«Коробка» все письма портала отправляет от одного физического почтового ящика и делает подмену заголовков. Т.е. Ваш менеджер пишет от своей почты, но технически почта все равно отправляется от одного пользователя.
Почтовые системы считают такие письма измененными, а сам яндекс вводит дополнительные ограничения на доставку таких писем. Получаем узкое горлышко и не стабильную работу с обоих сторон (Отправитель и Получатель).
Что можно сделать и как заставить работать «коробку» с почтой?
- Арендовать и подключить внешний SMTP-сервер.
- Отказаться от Яндекс.Почты и создать свой почтовый сервер с соответствующим техническим обслуживанием.
- Создать виртуальный SMPT-сервер на сервере портала или отдельно взятой машине.
- При этом никто Вам не мешает оставить уже существующие корпоративные Яндекс почтовые ящики только на прием входящих писем.
- Для отправки исходящих писем использовать мобильные приложения и веб-интерфейс Яндекс.
Какие особенности при работе с внешним SMTP-сервером?
- Сервисы, которые дают в аренду SMTP-сервер (услуга может называться транзакционный почтовый сервер) предъявляют жесткие требования к качеству корреспонденции и в случае превышения порога ~0,3% спам писем, настроенный вами аккаунт будет заблокирован.
- Требуется грамотно произвести настройки ДНС, корпоративного сервера портала и самого сервиса, иначе письма будут попадать в СПАМ.
Сколько стоят предлагаемые решения?
- Аренда серверов – есть бесплатные тарифы с ограничением до 10 000 писем в месяц, количества писем в день в час. Снятие ограничений и увеличение буфера решается ежемесячной платой в пределах 1 000 — 2 000 рублей.
- Решение организации собственного почтового сервера решается индивидуально и зависит от количества корпоративных почтовых ящиков и настроек.
С уважением, Лаборатория автоматизации «LOG [IN] OFF»