Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > отправление почты |
Автор: katala 24.4.2006, 16:07 |
народ помогите!!!! суть вот в чем: необходимо просто отправлять пистьма по указанному мылу. я вот тут использовал код SimpleEmail email = new SimpleEmail(); email.setHostName("stmp.list.ru"); email.addTo("[email protected]", "sanya_tnu"); email.setFrom("[email protected]", "katala86"); email.setSubject("Test message"); email.setMsg("This is a simple test of commons-email"); email.send(); } catch(EmailException e){ e.printStackTrace(); } но ничего не выходит. может подскажете что сдесь не верно или может как-то по другому написать??? |
Автор: tux 24.4.2006, 16:20 |
Вот так не было бы в тексте сообщения commons-email, можно было бы долго гадать что это такое. А что именно не выходит? Исключение выкидывается или просто письмо не доходит? Если исключение, приведи stackTrace. |
Автор: katala 24.4.2006, 16:25 |
org.apache.commons.mail.EmailException: Sending the email to the following server failed : stmp.list.ru:25 |
Автор: ALKS 24.4.2006, 16:43 |
ну если предположить что у тебя нету проблемм с фаерволами для доступа к stmp.list.ru:25, то все smtp сервера на www.mail.ru требуют аунтификации, чего в твоем примере естественно не реализовано. не знаю каким библиотеками ты пользуешся, но разберись как там врубить DEBUG мод. тогда увидиш что конкретно рпоизходит |
Автор: tux 24.4.2006, 17:00 | ||
Действительно, проблема скорее всего в аутентикации. Добавь перед отправкой сообщения такой метод:
Должно сработать. Если не получится, попробуй с другими серверами. В общем-то в остальном в коде все правильно. |
Автор: ALKS 24.4.2006, 17:05 | ||||
Не... это зависит какой именно способ аутентикации ожидает SMTP сервер. если например это POP-before-SMTP то твой пример не прокатит. если это RFC-2554 то может быть. завити опять же от умолчальной конфигурации java.mail... |
Автор: ALKS 24.4.2006, 17:17 |
Но опять же, настоятельно рекомендуеться врубить DEBUG mode. Тогда будет четко видно в чем проблемма. при использовании java.mail, DEBUG mode врубаеться путем вызова метода setDebug(true ) из javax.mail.Session. как в ваших коммонcах - хз, ройте доку ![]() |
Автор: tux 24.4.2006, 17:23 | ||
|
Автор: katala 24.4.2006, 17:46 |
и какие ошибки появились DEBUG: JavaMail version 1.4ea DEBUG: java.io.FileNotFoundException: E:\j2sdk1.4.2\jre\lib\javamail.providers (Не удается найти указанный файл) DEBUG: !anyLoaded DEBUG: not loading resource: /META-INF/javamail.providers 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,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]} DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]} DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map DEBUG: !anyLoaded DEBUG: not loading resource: /META-INF/javamail.address.map DEBUG: java.io.FileNotFoundException: E:\j2sdk1.4.2\jre\lib\javamail.address.map (Не удается найти указанный файл) DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: useEhlo true, useAuth true |
Автор: ALKS 24.4.2006, 18:05 |
Эмм.... E:\j2sdk1.4.2\jre\lib\javamail.address.map - а у тебя есть это фаил? и где попытка отсылки почты вообще? я её не вижу... похоже все грохаеться еще до какой бы то нибыло попытки коннекта к SMTP |
Автор: katala 24.4.2006, 21:12 |
вот именно нет ни E:\j2sdk1.4.2\jre\lib\javamail.providers ни E:\j2sdk1.4.2\jre\lib\javamail.address.map!!!! но я не могу их найти. может кно нибудь даст сылку. а лучше киньте плиз мне их на мыло[email protected] |
Автор: tux 25.4.2006, 02:08 | ||
не... просто katala не привел лог целиком. Отсутствие javamail.address.map - это не ошибка, а фича. Ждем полного лога. |
Автор: katala 25.4.2006, 18:16 |
дальше DEBUG SMTP: trying to connect to host "stmp.list.ru", port 25, isSSL false org.apache.commons.mail.EmailException: Sending the email to the following server failed : stmp.list.ru:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873) at org.apache.commons.mail.Email.send(Email.java:898) ....... |
Автор: tux 26.4.2006, 01:46 |
Нет такого хоста stmp.list.ru, есть smtp.list.ru. Еще можно попробовать его реальный IP поставить - 194.67.23.115. |
Автор: tux 26.4.2006, 04:15 | ||
katala, просьба более внимательно относиться к задаваемым вопросам и приводить всю информацию, относящуюся к вопросу. Для того, чтобы тебе ответить пришлось запускать твой код и искать причину. В конце лога говориться следующее:
- неизвестное имя хоста. Если бы сразу привел название библиотеки и что выдается в логе, ответили бы еще два дня назад. |
Автор: ALKS 26.4.2006, 11:31 |
однако telnet stmp.list.ru 25 у меня вполне работает. tux неужно у тебя таки firewall? ![]() |
Автор: tux 26.4.2006, 12:29 | ||
Дак таки нет. Ничего не понимаю, что за stmp.list.ru.
|
Автор: ALKS 26.4.2006, 13:00 |
стоп 220 mail.ru ESMTP Wed, 26 Apr 2006 13:19:45 +0400 Unknown host, Unknown host-ом но телнетом-то ты зашел... |
Автор: tux 26.4.2006, 15:13 |
Это на smtp.list.ru зашел, в листинге два сеанса telnet. |
Автор: katala 26.4.2006, 15:36 |
все я исправил. спасибо за помощь!!!в следующий раз буду более внимательно проверять перед тем как спрашивать |
Автор: ALKS 26.4.2006, 16:04 |
DEBUG mode, рулит... сколько раз убеждался уже ![]() |
Автор: katala 28.4.2006, 18:11 |
пишу письма на русском а приходят одни иероглифы поменял кодировку email.setCharset("Windows-1251"); но все равно приходят иероглифы . в чем поблема????7 |
Автор: powerOn 28.4.2006, 20:35 | ||
значит не на ту поменял... ![]() И лучше менять её в средстве просмотра, а не отправки писем.... |
Автор: _Spirit_ 18.6.2009, 09:59 | ||
Подскажите пожалуйста, скачала либу commons-email-1.0.jar с http://commons.apache.org а у меня выкидывает ошибку что не может найти класс BASE64EncoderStream, а в джарнике пакета util вообще нет :( Не могу понять в чем проблема и для чего ему этот энкодер
ошибка: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/BASE64EncoderStream at javax.mail.internet.InternetAddress.setPersonal(InternetAddress.java:216) at org.apache.commons.mail.Email.createInternetAddress(Email.java:422) at org.apache.commons.mail.Email.addTo(Email.java:490) |
Автор: tux 18.6.2009, 10:49 |
commons-email сам по себе не умеет ничего, это просто надстройка над JavaMail (что написано у него в документации, кстати). Поэтому тебе и JavaMail нужен, можно скачать на сайте Sun. |