Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
1

Ошибка при отправке почты (библиотека javax.mail)

13.03.2018, 07:39. Показов 7749. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Я понимаю, что тема давно избита но все же. Столкнулся с проблемой по отправке почты средствами JAVA а конкретно mail.ru. Ранее рассылка шла через gmail но по ряду причин пришлось отказаться. Так вот перестало работать. Происходит таймаут и вылитает ошибка. Использую библиотеку javax.mail.

Сам код метода:
Java
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
public String sendingEmail (String email, String subject, String bodyMessage) {
 
        Properties props = new Properties();
        props.put("mail.smtp.auth", EmailData.MAIL_STATS_SMTP_AUTH); //"true"
        props.put("mail.smtp.host", EmailData.MAIL_STATS_SMTP_HOST); //"smtp.mail.ru"
        props.put("mail.smtp.port", EmailData.MAIL_STATS_SMTP_PORT); //"465"
 
        Session session = Session.getInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(EmailData.EMAIL_USER_NAME, EmailData.EMAIL_USER_PASSWORD);
            }
        }); 
 
        try { 
 
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(email));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email));
            message.setSubject(subject);
            message.setText(bodyMessage);
 
            Transport.send(message);
            
            return "done";
 
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
 
    }
Имя пользователя пишу полностью.
Подскажите в чем может быть проблема. Или лучше другую библиотеку использовать?

Добавлено через 6 минут
PS не для спама!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2018, 07:39
Ответы с готовыми решениями:

дайте ссылку на скачивание javax.mail и javax.mail.Message
дайте ссылку на скачивание javax.mail и javax.mail.Message

Ошибка при отправке почты (ActiveWorkbook.SendMail Recipients:='ivan@mail.ru', Subject:='tema')
В excel XP написан макрос на отправку почты, в частности стока ActiveWorkbook.SendMail...

При отправке почты через функцию mail() письма попадают в спам
код отправки писем $to = "web-d0y4h@mail-tester.com" ; $subject = $_POST; $text=''; if...

При отправке на mail.ru, отправителем вместо почты, должен показываться текст
Доброго времени суток. Задача такая, к примеру при отправке на mail.ru, как сделать что бы вместо...

10
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
13.03.2018, 08:05 2
ща магический шар достану и посмотрю на твой монитор да бы узнать сам текст ошибки. паранойя не мучает?
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
13.03.2018, 08:07  [ТС] 3
Цитата Сообщение от LeX Посмотреть сообщение
ща магический шар достану и посмотрю на твой монитор да бы узнать сам текст ошибки. паранойя не мучает?
Можно же просто спросить или указать что нужны ошибки. Можете не доставать свой "магический шар".


мар 13, 2018 3:25:44 AM org.apache.catalina.core.StandardHostValve invoke
SEVERE: Exception Processing /librariFinalTask/SimpleServletController
java.lang.NullPointerException
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 59)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:9 4)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.jav a:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve. java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor .java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractPro tocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:15 39)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495 )
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:6 1)
at java.lang.Thread.run(Thread.java:748)
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4544 / 2738 / 486
Регистрация: 28.04.2012
Сообщений: 8,649
13.03.2018, 09:07 4
Цитата Сообщение от First Посмотреть сообщение
Можно же просто спросить или указать что нужны ошибки
Они всегда нужны. Приведённый стэктрейс не имеет никакого отношения к отправке почты. Либо ты не тот стэктрейс скопировал, либо не полностью. Либо проблема не в отправке почты, а в чём-то другом.
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
13.03.2018, 12:30  [ТС] 5
Очень долго висит и потом выдает

мар 13, 2018 12:29:51 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [by.htp.library.controller.SimpleServletController] in context with path [/librariFinalTask] threw exception
java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.ru, port: 465, response: -1
at by.htp.library.action.util.EmailSender.sendingEmail(EmailSender.java:44)
at by.htp.library.dao.impl.BookDaoMySql.anserRenting(BookDaoMySql.java:739)
at by.htp.library.action.console.renting.AnswerRenting.doHttpReqRes(AnswerRenting.j ava:31)
at by.htp.library.controller.SimpleServletController.doGet(SimpleServletController. java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 12)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:9 4)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.jav a:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve. java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor .java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractPro tocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:15 39)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495 )
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:6 1)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.ru, port: 465, response: -1
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1949)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at by.htp.library.action.util.EmailSender.sendingEmail(EmailSender.java:39)
... 26 more
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
13.03.2018, 12:37 6
Данные подключения нужно проверить. SMTP сервер по указанному адресу/порту не отвечает
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
13.03.2018, 12:38  [ТС] 7
Цитата Сообщение от Любопытный Посмотреть сообщение
Данные подключения нужно проверить. SMTP сервер по указанному адресу/порту не отвечает
Как это сделать можно?
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
13.03.2018, 12:40 8
Почитать инструкции на ресурсе, которому почтовик пренадлежит.
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
13.03.2018, 13:12  [ТС] 9
использую данные с mail.ru

IMAP, SMTP и POP3-серверы Mail.Ru
Для настройки почтовой программы вам потребуется следующая информация:

Электронный адрес Полное имя почтового ящика, включая логин, @ и домен
Сервер входящей почты (IMAP- и POP3-сервера) IMAP-сервер — imap.mail.ru
POP3-сервер — pop.mail.ru
Сервер исходящей почты (SMTP-сервер) smtp.mail.ru
Имя пользователя
Полное имя почтового ящика, включая логин, @ и домен

Пароль Пароль, который вы используете для входа в почтовый ящик
Порт IMAP — 993 (протокол шифрования SSL/TLS)
POP3 — 995 (протокол шифрования SSL/TLS)
SMTP — 465 (протокол шифрования SSL/TLS)
Аутентификация Обычный пароль (без шифрования)
В настройках почтовой программы необходимо указать, что сервер исходящей почты (или сервер SMTP) требует авторизации.

Добавлено через 30 минут
Странно:

DEBUG: JavaMail version 1.4.7
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.mail.ru", port 465, isSSL false
DEBUG SMTP: exception reading response, THROW:
Exception : javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketTimeoutException: Read timed out
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:124)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2182)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1939)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at by.htp.library.action.util.EmailSender.sendingEmail(EmailSender.java:56)
at by.htp.library.dao.impl.BookDaoMySql.anserRenting(BookDaoMySql.java:739)
at by.htp.library.action.console.renting.AnswerRenting.doHttpReqRes(AnswerRenting.j ava:31)
at by.htp.library.controller.SimpleServletController.doGet(SimpleServletController. java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 12)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:9 4)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.jav a:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve. java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor .java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractPro tocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:15 39)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495 )
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:6 1)
at java.lang.Thread.run(Thread.java:748)
0
25 / 26 / 9
Регистрация: 14.03.2018
Сообщений: 74
15.03.2018, 07:17 10
Цитата Сообщение от First Посмотреть сообщение
DEBUG SMTP: trying to connect to host "smtp.mail.ru", port 465, isSSL false
DEBUG SMTP: exception reading response, THROW:
Exception : javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketTimeoutException: Read timed out
java.net.SocketTimeoutException: Read timed out
Ну вот же он прямо пишет не может прочитать данные, превышен лимит ожидания ответа при отправке на порт 465.
Тут и надо смотреть.

Цитата Сообщение от korvin_ Посмотреть сообщение
Приведённый стэктрейс не имеет никакого отношения к отправке почты.
Да вы просто гений. Ну вот выложил ТС правильный стектрейс и что? Где ответы.. А нету ибо сдулся.
0
 Аватар для First
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
15.03.2018, 09:18  [ТС] 11
Спасибо. Разобрался. Не знаю на сколько верно, но работает.

Java
1
2
3
4
5
6
7
8
9
10
11
12
Properties props = new Properties();
            props.put("mail.smtp.host", EmailData.MAIL_STATS_SMTP_HOST);
            props.put("mail.smtp.ssl.enable", EmailData.MAIL_STATS_SSL_ENABLE);
            props.put("mail.smtp.auth", EmailData.MAIL_STATS_SMTP_AUTH);
            props.put("mail.smtp.port", EmailData.MAIL_STATS_SMTP_PORT);
            // props.put("mail.debug", "true");
 
            Session session = Session.getInstance(props, new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return (new PasswordAuthentication(EmailData.EMAIL_USER_NAME, EmailData.EMAIL_USER_PASSWORD));
                }
            });
0
15.03.2018, 09:18
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2018, 09:18
Помогаю со студенческими работами здесь

Ошибка при отправке почты
Здравствуйте. Подскажите пожалуйста, в чем проблема: Есть код на отправку писем с почты майла, на...

Ошибка при отправке почты
Всем привет. Пишу приложение на ASP.NET Core. Использую MailKit для отправки почты. Проблема...

Ошибка при отправке почты!!!
Я тут написал прогу отправка почты, запускаю прогу, кликаю на Кнопку отправвить и тут есть ошибка !...

Ошибка 0х800ссс78 при отправке почты
Товарищи прошу помощи уже не знаю что и делать Outlokk выдает ошибку также как и все имеющиеся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Для чего нужен UserManager.isU­serAGoat(­) в Android и как это использовать
bytestream 25.01.2025
В мире Android-разработки существует множество интересных и порой загадочных функций, о которых знают далеко не все разработчики. Одной из таких функций является метод UserManager. isUserAGoat(),. . .
Как обойти масси в JavaScript. Всё о циклах
bytestream 25.01.2025
JavaScript представляет собой мощный язык программирования, широко используемый в веб-разработке, где массивы и циклы являются фундаментальными концепциями для эффективной работы с данными. Массив в. . .
Как сделать, чтобы существующая ветка отслеживала удалённую в Git. Связывание локальных и удалённых веток
bytestream 25.01.2025
В разработке программного обеспечения системы контроля версий стали неотъемлемой частью процесса создания качественного программного продукта. Эти инструменты позволяют разработчикам эффективно. . .
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru