Проблема отправки почты через yandex — Вопросы и проблемы
unesihin.m.v (Матвей Унесихин)
#1
Прошу помочь с настройкой отправки email. Вроде все сделал по документации, но не выходит.
Пытаюсь настроить отправку почты в приложении через SMTP сервер Яндекс
При тесте через JMX Bean получаю ошибку:
Результат выполнения: адрес_куда : Mail server connection failed; nested exception is javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketTimeoutException: Read timed out at com.haulmont.cuba.core.app.Emailer.persistAndSendEmail(Emailer.java:234)
Настройки следующие:
budarov (Alexander Budarov)
#2
Добрый день,
Исходящая почта
- адрес почтового сервера —
smtp.yandex.ru;- защита соединения — SSL;
- порт — 465.
Попробуйте отключить “smtpStarttlsEnable”. Если бы STARTTLS требовалась, то вид защиты соединения так бы и назывался.
unesihin.m.v (Матвей Унесихин)
#3
Александр, добрый день!
Без этого параметра ошибка точно такая же.
chizhikov (Artem Chizhikov)
#5
Добрый день!
Подскажите, какую версию платформы Вы используете?
Прилагаю заведомо рабочий проект версии CUBA Platform 7.1.2, полностью повторяющий Вашу конфигурацию — при тесте через JMX Console метод sendTestEmail( ) выполняется успешно.
yandex-smtp-test.zip (77.4 КБ)
Пожалуйста, проверьте, будет ли у Вас работать отправка сообщений через приложенный проект:
- если да, то тогда от Вас необходим тестовый проект, в котором отправка не работает;
- если нет, то тогда, в первую очередь, причину ошибки стоит искать за пределами CUBA-проекта.
unesihin.m.v (Матвей Унесихин)
#6
Версия 7.1.2
Спасибо попробую ваш пример, отпишусь о результате
unesihin.m.v (Матвей Унесихин)
#7
Проверил, все ок. Стало работать. Причины не знаю. Спасибо за поддержку
Прикручиваем скрипт для отправки почты на Python (SSL/TLS) — DevRockets — boosting IT perfomance
Эйчары большие любители устраивать регулярное ревью позиции, как они это объясняют «в корреляции с твоими целями». Представь их удивление, когда ты скажешь, что теперь твоя цель — написать почтовый скрипт для отправки почты на Python
Для отправки электронной почты используется протокол SMTP. Python в данном случае — не панацея.
Поднять почтовый сервер можно и на node.js, а чтобы не пропустить все лайфхаки по программированию на фрейморках рекомендуем занести в закладки блог Babacoding.
Матчасть
Электронную почту в Python можно отправлять двумя способами: поднять собственный SMTP-сервер (с помощью модуля smtpd), либо написать скрипт с помощью библиотеки smtplib, являющейся клиентом этого протокола
Во втором случае для отправки нам нужно подключиться к какому-либо SMTP-серверу, например smtp.yandex.ru, поэтому для примера мы возьмем свой электронный ящик на Яндексе, но можно использовать абсолютно любую, даже доменную почту.
Если вдруг у вас нет библиотеки smtplib, её можно установить через менеджер пакетов PIP, командой C:\Python>python -m pip install smtplib через CMD (переместитесь с помощью команды CD в каталог, где у вас установлен Python)
Подключение
Подключаться к серверу мы будем через конструктор класса SMTP — именно он инкапсулирует SMTP-соединение
class smtplib.
SMTP(host=», port=0, local_hostname=None, [timeout, ]source_address=None)
- Host — указывается IP-адрес или домен SMTP-сервера
- Port — указывается порт подключения. Тут всё зависит от того, используется ли на сервере шифрование. Как правило, порт без шифрования — 25, с TLS — 587, c SSL — 465)
- Local_hostname — если SMTP-сервер расположен на локальном ПК, то необходимо указать localhost.
- Source_address — необязательный параметр, который позволяет выполнять привязку к определенному исходному адресу на машине с несколькими сетевыми интерфейсами и/или к определенному исходному TCP-порту
Отправка
Отправка самого сообщения происходит за счет метода SMTP.sendmail —
SMTP.sendmail(from_addr, to_addrs, msg, mail_options=(), rcpt_options=())
- From_addr — адрес отправителя.
- To_addrs — адрес получателя
- Msg — отправляемое сообщение (формат этого параметра должен быть строкой)
Настройка ящика
Так как мы тестируем отправку через ящик Яндекса, перед тем как начать необходимо проверить настройки — скрипт работает как обычный почтовый клиент.
Первым делом, необходимо проверить, включен ли в ящике IMAP (без него SMTP работать не будет по соображениям безопасности)
Если у вас активны пароли приложений — не забудьте получить дополнительный пароль для своего скрипта:
Пишем код
Импортируем нужные для работы библиотеки:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
Далее создаём сообщение с помощью класса MIMEMultipart — нужно указать все заголовки (части) составного сообщения. MIMEText предназначен для текста (например, text/plain или text/html), если все сообщение находится в текстовом формате или его часть.
msg = MIMEMultipart() msg['From'] = '****@yandex.ru' msg['To'] = '****@gmail.com' msg['Subject'] = 'Тест скрипта SMTP' message = 'Это тестовое сообщение и отвечать на него не нужно' msg.attach(MIMEText(message))
Если нужно написать сообщение в несколько строк используйте символ переноса строки \n
message = ‘Это тестовое сообщение и отвечать на него не нужно \n Но если очень хочется, то можно’
Создаём экземпляр (объект) класса SMTP. Обратите внимание на строчку mailserver.set_debuglevel(True) — так мы включаем режим отладки, чтобы в случае проблем можно было посмотреть логи
mailserver = smtplib.SMTP('smtp.yandex.ru',587)
mailserver.set_debuglevel(True)Дальше нам нужно инициировать рукопожатие TLS. Отправляем команду ehlo() — сервер должен ответить на него. Затем запускаем сам протокол. После запуска вы должны снова вызвать ehlo() перед аутентификацией.
# Определяем, поддерживает ли сервер TLS
mailserver.ehlo()
# Защищаем соединение с помощью шифрования tls
mailserver.starttls()
# Повторно идентифицируем себя как зашифрованное соединение перед аутентификацией.
mailserver.ehlo()Подключаемся к серверу, отправляем письмо. Используем as_string (), чтобы превратить MIMEText в строку
mailserver.login('*****@yandex.ru', 'здесь_пароль')
mailserver.sendmail('*****@yandex.ru','****@gmail.com',msg.as_string())Финальный вариант кода. В нём мы добавили простую обработку исключений (try/except) для удобства вывода
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
msg['From'] = '******@yandex.ru'
msg['To'] = '*****@gmail.com'
msg['Subject'] = 'Тест скрипта SMTP'
message = 'Это тестовое сообщение и отвечать на него не нужно'
msg.attach(MIMEText(message))
try:
mailserver = smtplib.SMTP('smtp.yandex.ru',587)
mailserver.set_debuglevel(True)
# Определяем, поддерживает ли сервер TLS
mailserver.ehlo()
# Защищаем соединение с помощью шифрования tls
mailserver.
starttls()
# Повторно идентифицируем себя как зашифрованное соединение перед аутентификацией.
mailserver.ehlo()
mailserver.login('******@yandex.ru', 'здесь_пароль')
mailserver.sendmail('******@yandex.ru','******@gmail.com',msg.as_string())
mailserver.quit()
print("Письмо успешно отправлено")
except smtplib.SMTPException:
print("Ошибка: Невозможно отправить сообщение")Результат:
Письмо успешно дошло адресату:
Для отправки нескольким получателям добавьте конструкцию
recipients = [‘[email protected]’, ‘[email protected]’]
msg[‘To’] = «, «.join(recipients)
В строчке mailserver.sendmail исправьте код
mailserver.sendmail (*****@yandex.ru, recipients, msg.as_string())
Вариант для SSL
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText msg = MIMEMultipart() msg['From'] = '*******@yandex.ru' msg['To'] = '******@gmail.com' msg['Subject'] = 'Тест скрипта SMTP' message = 'Это тестовое сообщение и отвечать на него не нужно' msg.attach(MIMEText(message)) try: mailserver = smtplib.SMTP_SSL('smtp.yandex.ru',465) mailserver.set_debuglevel(True) mailserver.login('*****@yandex.ru', 'здесь_пароль') mailserver.sendmail('*****@yandex.ru','******@gmail.com',msg.as_string()) mailserver.quit() print("Письмо успешно отправлено") except smtplib.SMTPException: print("Ошибка: Невозможно отправить сообщение")
Результат:
Многопоточный режим [Почта] SMTP не работает |
Сообщений: 2 #1 2020-04-12, 19:15 Привет! Сегодня пытался настроить автоматическую SMTP-почту без ответа на своем форуме, но она не работает и выдает ошибки. Для этого я использую Яндекс для домена. Мои настройки: Имя хоста: smtp.yandex.com Вот ошибки, которые появляются в разделе «Инструменты и обслуживание»: С шифрованием SSL: «Невозможно подключиться к почтовому серверу с указанными данными. Причина: 0:» Я также использую Cloudflare, но я отключил защиту для mx и других вещей, связанных с почтой. Как я могу заставить эту штуку работать? Я могу успешно подключиться к Яндекс SMTP и IMAP на настольной почте, но MyBB не будет отправлять электронные письма после ввода данных. Находить Отвечать Сообщений: 798 #2 2020-04-13, 09:06 Привет, (12. Как говорит Яндекс: Цитата: Для доступа к почтовому серверу введите логин и пароль Яндекса (или используйте пароль приложения, если у вас включена двухэтапная аутентификация). Если вы настраиваете доставку электронной почты из почтового ящика, такого как «[email protected]», ваше имя пользователя — это первая часть адреса перед знаком «@». Если вы используете Яндекс.Почту для домена, в качестве логина введите свой полный адрес электронной почты. Я думаю, что «нет ответа» это не ваш логин пользователя, а может быть и причина ошибки. Пожалуйста, проверьте в общих настройках адрес возврата/отправителя, если он тоже совпадает. Находить Отвечать |
« Следующая самая старая | Следующая новинка » |
Настройка SMTP — Справочный центр Merchbees
Чтобы отправлять электронные письма со своего адреса электронной почты, вам необходимо настроить SMTP. Вы можете найти примеры настроек SMTP для известных служб ниже.
Gmail, Google Apps
Hotmail
Yandex
Существует два способа использования Gmail, Google Apps в качестве источника SMTP.
Вы можете включить двухфакторную аутентификацию или использовать Gmail по умолчанию. Мы предлагаем вам использовать двухфакторную аутентификацию для большей безопасности.
Найдите ниже необходимые действия для указанных методов
Способ 1: Использование Gmail/Google Apps с двухфакторной аутентификацией
Перейдите на страницу паролей приложений в своей учетной записи Google, чтобы сгенерировать пароль приложения.
Выберите тип приложения как Почта и Устройство как Другое (Вы можете назвать его как merchbees, если хотите)
Скопируйте сгенерированный пароль приложения.

На странице настроек SMTP введите следующую информацию.
Хост: smtp.gmail.com Порт: 465 Использовать SSL: Верно Имя пользователя: Ваш адрес электронной почты Пароль: Пароль приложения (Сгенерирован на предыдущем шаге.)
Способ 2: Использование Gmail/Google Apps без двухфакторной аутентификации
Вам необходимо изменить две настройки в своей учетной записи Google.

Включите здесь опцию менее безопасных приложений.
Разблокируйте капчу здесь.
На странице настроек SMTP введите следующую информацию.
Хост : smtp.gmail.com Порт: 465 Использовать SSL: Верно Имя пользователя: Ваш адрес электронной почты Пароль: Ваш пароль электронной почты
На странице настроек SMTP
введите следующую информацию.
Хост: smtp.mail.yahoo.com Порт: 465 Использовать SSL: Верно Имя пользователя: Ваш адрес электронной почты Пароль: Ваш пароль электронной почты
На странице настроек SMTP
введите следующую информацию.
Хост: smtp-mail.outlook.com Порт: 587 Использовать SSL: Ложь Имя пользователя: Ваш адрес электронной почты Пароль: Ваш пароль электронной почты
На странице настроек SMTP
введите следующую информацию.


java:234)
attach(MIMEText(message))
ru'
msg['To'] = '******@gmail.com'
msg['Subject'] = 'Тест скрипта SMTP'
message = 'Это тестовое сообщение и отвечать на него не нужно'
msg.attach(MIMEText(message))
try:
mailserver = smtplib.SMTP_SSL('smtp.yandex.ru',465)
mailserver.set_debuglevel(True)
mailserver.login('*****@yandex.ru', 'здесь_пароль')
mailserver.sendmail('*****@yandex.ru','******@gmail.com',msg.as_string())
mailserver.quit()
print("Письмо успешно отправлено")
except smtplib.SMTPException:
print("Ошибка: Невозможно отправить сообщение")
04.2020, 19:15)CoolSummer300 Написал: Пользователь SMTP: [email protected]
8 Поддержка— Общая поддержка— Установка и поддержка обновлений— Управление безопасностью и поддержка— Объединение расширений поддержки системы— Плагины—- Выпуски плагинов—- Поддержка плагинов—- Плагин Разработка—- Запросы плагинов— Темы—- Выпуски тем—- Поддержка тем—- Разработка тем—- Запросы тем— Переводы—- Выпуски переводов—- Обсуждение переводов и Ресурсы для разработчиков— MyCodes— Интеграция сторонних производителей— Учебники Разработка— Разработка MyBB 1.8—- 1.8 Ошибки и проблемы—— Отправлено—— Отклонено— Разработка MyBB 1.x— MyBB Merge System Development— Предложения и отзывы—- Запланированные функции—- Сообщество отклоненных функций— Общее обсуждение—- Веб-разработка и администрирование— Демонстрация— Торговая площадка—- Плагины—- Темы — Запросы/услуги/вакансии— Тестирование проекта MyBB— Обсуждение в блоге— Архив сообщества по проблемам проекта и сайта MyBB— Архив форумов—- Архив Devel Опция и поддержка—— 1.8 Бета-поддержка—— 1.
8 Обсуждение—— Обсуждение слияния—— MyBB 1.6——— 1.6 Общая поддержка— —— 1.6 Установка и поддержка обновлений——— 1.6 Управление безопасностью и поддержка——— 1.6 Поддержка слияния систем——— 1.6 Обсуждение—— — 1.6 Предложения и отзывы———- Включенные предложения/отзывы——— 1.6 Обсуждение и отзывы——— 1.6 Ошибки и проблемы—— — Голландский (Нидерланды)——— Испанский (Испанский)—— 2.0 Предложения и отзывы—— MyBB 1.4——— MyBB 1.4 Общая поддержка- ——— Помощь по установке——— MyBB Merge for 1.4 — Отчеты об ошибках———- Исправленные ошибки———- Дубликаты / Поддельные отчеты ——— MyBB Merge System for 1.4 (B4) ———- Общая поддержка ———- Отчеты об ошибках ——— —- Исправлены ошибки ———— Дублирование/подделка ——— Система слияния для MyBB 1.4 ———— Поддержка слияния MyBB — — Разработка MyBB 2.0——— Реализованные функции—— Серия MyBB 1.2——— Общая поддержка MyBB 1.
2——— — Помощь по установке ——— Система слияния для MyBB 1.2 ———- Общая поддержка ———- Отчеты об ошибках ———- — Исправленные ошибки ———— Дубликаты / поддельные отчеты —— Архивные отчеты об ошибках ——— Отчеты об ошибках MyBB 1.4.x ——- — Исправлены ошибки———- Дубликаты или фиктивные ошибки——— MyBB 1.2.2——— MyBB 1.2.3——- — MyBB 1.2.7——— MyBB 1.4.0 Beta——— MyBB 1.4.0——— MyBB 1.4.1——— MyBB 1.4.2——— MyBB 1.4.4——— MyBB 1.4.6—- Разное Архив—— Старые объявления——— Объявления Обсуждение—— Витрина—— Запросы/Услуги/Вакансии—— Запросы/Услуги/Вакансии 2