Не отправляется почта из MT4. Ошибка: Mail: 'Test message' failed

 

Всем, привет.
Помогите пожалуйста с настройкой почты.

Настраивал почту для smtp.yandex.ru:465, так и для smtp.rambler.ru:465.

Прописал штатные настройки, получаю ошибку:

2023.10.23 14:35:52.993 Mail: 'Test message' failed

Терминал и комп уже перегружал несколько раз.

Вклюбчал отправку через smpt, и задавал пароли на отправку. 

Прошу помогите!!! ???

Спасибо!

 
То же самое было. Не отправлялось никак. Никакой информации о том, почему не отправлялось - нет, просто " 'Test message' failed" и всё.
Я плюнул и сделал своим способом. Эксперты могут загружать методы из DLL - сделал DLL с SMTP-клиентом и экспортируемыми функциями создания этого клиента и отправки сообщений. Подня возился, починяя баги (то параметры перепутал, то логин с паролем забыл передать) - в итоге заработало и письмо отправилось.
Кстати Мэйл.ру в плане выдачи ошибок очень плох. У него тоже никакой информации, таймаут выходит и всё, никаких сообщений об ошибках. Разобрался только после того как попробовал через Яндекс - там пришло сообщение на английском в духе "эээ, чел, прежде чем пытаться письмо отправлять скажи свой логин и пароль" :)
И вот после того как я сделал отправку писем из эксперта через DLL - ушло тестовое сообщение из настроек терминала. Почему оно до этого не отправлялось - вообще непонятно. Думаю, что может быть я забыл порт указать. Но вроде нет - когда решил ещё раз попробовать, порт уже был указан, я просто кнопку "Тест" нажал ещё раз и всё отправилось. Что это было - непонятно.
 
Сергей Ткаченко #:
То же самое было. Не отправлялось никак. Никакой информации о том, почему не отправлялось - нет, просто " 'Test message' failed" и всё.
Я плюнул и сделал своим способом. Эксперты могут загружать методы из DLL - сделал DLL с SMTP-клиентом и экспортируемыми функциями создания этого клиента и отправки сообщений. Подня возился, починяя баги (то параметры перепутал, то логин с паролем забыл передать) - в итоге заработало и письмо отправилось.
Кстати Мэйл.ру в плане выдачи ошибок очень плох. У него тоже никакой информации, таймаут выходит и всё, никаких сообщений об ошибках. Разобрался только после того как попробовал через Яндекс - там пришло сообщение на английском в духе "эээ, чел, прежде чем пытаться письмо отправлять скажи свой логин и пароль" :)
И вот после того как я сделал отправку писем из эксперта через DLL - ушло тестовое сообщение из настроек терминала. Почему оно до этого не отправлялось - вообще непонятно. Думаю, что может быть я забыл порт указать. Но вроде нет - когда решил ещё раз попробовать, порт уже был указан, я просто кнопку "Тест" нажал ещё раз и всё отправилось. Что это было - непонятно.

а можно было локальный сервер SMTP поднять и настроить пересылку (или хотя-бы просто приём). В локальный сервер соединения быстрые и отправка моментальная, письмо прилетает быстрее чем звук от Alert. Терминал не подвешивает и разрешения DLL от советников не требует

из легко и просто доступных SMTP - есть Pegasus он-же Mercury, который входит в очень полезный набор веб-разработки XAMPP (apache+php+mysql) https://www.apachefriends.org/ru/index.html.

Вообще очень полезно рядом с терминалом иметь рабочий smtp (для приёма,обработки и пересылки почтовых алертов) и reverse-proxy, хотя-бы тот-же апач

Если smtp это сложно и можно обойтись, то RevProxy это must-have. С ним единственное разрешение в MetaTrader - это localhost. И можно конфигурировать нестандартные порты и оно работает быстрее.

XAMPP Installers and Downloads for Apache Friends
  • www.apachefriends.org
XAMPP is an easy to install Apache distribution containing MariaDB, PHP and Perl.
 
Maxim Kuznetsov #:
а можно было локальный сервер SMTP поднять и настроить пересылку (или хотя-бы просто приём)

Проблема чаще всего не в том, локальный SMTP-сервер или удалённый, и не в задержке при отправке. Проблема в том, чтобы вообще письма хоть как-то отправлялись. У моего заказчика, например, отправка писем настроена по умолчанию раз в 3 часа. Раз в день - тоже сойдёт. Отправится письмо на 20 сек. раньше или позже - его вообще не волнует (не говоря уж о долях секунды).
Так вот сначала письма не отправлялись вообще, в связи с чем и пришлось делать DLL. Выдавалась эта самая ошибка "Test message failed" и всё, об остальном предлагалось догадываться самому. Причём заказчик пробовал разные почтовые сервисы, и свой собственный SMTP тоже поднимал. Но не получилось у него почему-то. И у меня самого не получалось, пока не сделал DLL.

 

Поднять свой SMTP и смотреть в его логах. Сниффить SMTP - тоже может помочь.

У меня уж сколько лет свой домашний Postfix + Dovecot + nginx + Roundcube + PostgreSQL

 

Решил написать сюда ещё одно итоговое сообщение со сбором рекомендаций для тех, у кого не получается настроить почту. Сделать руководство по решению наиболее распространённых проблем.

1. Отправка сообщений из терминалов МТ5/МТ4 работает.
Если у вас не получается - проблему надо искать на вашей стороне. Неправильные настройки подключения; заблокированные фаерволлом порты; неработающий SMTP-сервер, к которому вы пытаетесь подключиться - что-то в этом духе.

2. Есть проблемы - сначала проверяйте настройки.
Чаще всего проблемы возникают из-за неправильных настроек SMTP. Настройки разные для каждого сервиса. Поэтому первым делом надо найти справку по настройке почтовых программ конкретно для вашего сервиса и прочитать её. Полностью и внимательно. Если хотите отправлять почту через Мэйл.ру - набираете в поисковике что-нибудь вроде "Mail.ru как настроить почтового клиента". Если через Яндекс - что-нибудь наподобие "Яндекс настройка почтовых программ" и т.д и т.п. У всех крупных сервисов есть справка, там всё подробно описано. Ещё раз повторю - читать надо внимательно, любая не замеченная вами тонкость может привести к тому что отправка работать не будет. Вот, для примера, страница помощи для Мэйл.ру:
https://help.mail.ru/mail/mailer/settings/

3. Создайте пароль для приложений.
В настройках чаще всего люди не замечают то, что надо использовать специальный, отдельный пароль для приложений. Большинство крупных сервисов этого требует - в том числе Мэйл.ру, Яндекс, Гугл и т.д. Да, ваш пароль, к которому вы привыкли и который вы вводите на сайте чтобы зайти в почту и почитать письма - он не годится, работать не будет. Надо лезть в настройки вашего сервиса, выяснять там, как создать пароль приложения, создать его, и потом использовать. Вот, например, ссылка на справку по созданию таких паролей на Мэйл.ру:
https://help.mail.ru/mail/mailer/password/
Я своему клиенту сказал про этот пароль, потом ещё в сообщениях пару раз написал - всё равно у него не работает. После того как он показал мне экран - выяснилось, что он всё это проигнорировал, пароль приложения не сделал и пытается вводить свой обычный пароль. Ну конечно ничего не работает. Создали вместе с ним пароль приложения - заработало.

4. Порт необходимо указать вместе с адресом, через двоеточие.
Настройки терминала, хоть и работают - сделаны неудобно и непонятно. В поле "Сервер SMTP" на самом деле надо указывать не только сервер, но ещё и порт. По мнению дизайнеров интерфейса MetaQuotes, пользователи должны об этом догадаться сами. Ни сделать отдельное поле для порта, ни хотя бы написать в заголовке "Сервер и порт SMTP" дизайнеры почему-то не додумались. Читая руководство по настройке, про порт легко забыть. Например, у Мэйл.ру написано: "Сервер исходящей почты (SMTP-сервер)  smtp.mail.ru" Копируем его оттуда, про порт забываем. Между тем, Мэйл.ру работает не на 25 порту, который используется по умолчанию для SMTP (его сейчас почти никто не использует), а на защищённом SSL порту 465. А терминал понятия не имеет, на каком порту работает ваш сервис. Поэтому в поле  "Сервер SMTP" надо писать "smtp.mail.ru:465". Для других сервисов - смотрите в руководстве, какой порт надо использовать.

5. Выясните, какой у вас логин.
Логин вводится по-разному для разных сервисов. Например, допустим, что у Васи Пупкина есть почта на Мэйл.ру - "vasyapupkin@mail.ru", и ещё одна на Яндексе -   "vasyapupkin@yandex.ru". Если Вася хочет использовать для отправки сообщений из терминала почту Мэйл-ру - ему необходимо в качестве логина указывать почтовый адрес полностью,  "vasyapupkin@mail.ru". Но если Вася хочет использовать почту Яндекса - ему необходимо учесть, что у Яндекса правила уже другие и логином является только часть адреса до знака "@", то есть просто  "vasyapupkin".

6. Есть другие способы.
Если всё перепробовали и всё равно не работает - можно делать по-другому. Например, как я делал - создать своего SMTP-клиента в DLL и подключать его в эксперта через импорт. Или реализовать, скажем, клиента Telegram и передавать информацию через него. Но это будет значительно дольше и сложней, чем просто настроить встроенного в терминал SMTP-клиента, и багов там будет ещё больше. 

7. Инструкция актуальна на Февраль 2025 года.
Если вдруг кому-то доведётся читать это намного позже - возможно, там уже везде будет какая-нибудь "авторизация через торсионные поля", или ещё что-то совсем новое.

Как создать пароль для входа во внешнее приложение — Помощь по сервисам Mail
Как создать пароль для входа во внешнее приложение — Помощь по сервисам Mail
  • Служба поддержки Mail
  • help.mail.ru
Внешние приложения — это почтовые и другие клиенты, в которые вы входите с аккаунтом Mail. Например, почтовые программы Microsoft Outlook, The Bat! и прочие нативные клиенты. К внешним приложениям не относятся мобильные приложения Mail: Почта и Облако. Для них создавать отдельный пароль не нужно. Если в Почте Mail вы пользуетесь ящиком...