Smtp yandex port ssl: Как подключится к SMTP Yandex? — Хабр Q&A

Проблема отправки почты через 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 не работает

Прыжок с форума: Личные сообщенияПанель управления пользователяWho’s OnlineSearchForum Home 1. 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

Многопоточный режим

[Почта] SMTP не работает

Сообщений: 2
Тем: 2
Присоединился: ноя 2017
Репутация: 0

#1

2020-04-12, 19:15

Привет!

Сегодня пытался настроить автоматическую SMTP-почту без ответа на своем форуме, но она не работает и выдает ошибки.


Для этого я использую Яндекс для домена.

Мои настройки:

Имя хоста: smtp.yandex.com
Порт: 465
Пользователь SMTP: [email protected]
SMTP pw: (user pw)
Шифрование: SSL.

Вот ошибки, которые появляются в разделе «Инструменты и обслуживание»:

С шифрованием SSL: «Невозможно подключиться к почтовому серверу с указанными данными. Причина: 0:»
С шифрованием TLS: «Почтовый сервер не готов, он не ответил сообщением о состоянии 220».

Я также использую Cloudflare, но я отключил защиту для mx и других вещей, связанных с почтой.

Как я могу заставить эту штуку работать? Я могу успешно подключиться к Яндекс SMTP и IMAP на настольной почте, но MyBB не будет отправлять электронные письма после ввода данных.

Находить

Отвечать

Сообщений: 798
Тем: 25
Присоединился: Июн 2006
Репутация: 77

#2

2020-04-13, 09:06

Привет,

(12. 04.2020, 19:15)CoolSummer300 Написал: Пользователь SMTP: [email protected]

Как говорит Яндекс:

Цитата: Для доступа к почтовому серверу введите логин и пароль Яндекса (или используйте пароль приложения, если у вас включена двухэтапная аутентификация). Если вы настраиваете доставку электронной почты из почтового ящика, такого как «[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

введите следующую информацию.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *