Glassfish 2.1 i JavaMail

0

Witam

Moj kod na wysylanie maili wyglada nastepujaco:

try{
            String host = "poczta.o2.pl";
            String username = "konto";
            String password = "asasas";

            Authenticator auth = new MessageAuthenticator("username_1980", "password");

            Properties props = new Properties();
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", true); 

            Session session = Session.getInstance(props, auth);

            MimeMessage mm = new MimeMessage(session);
            mm.setContent("Test", "text/plain");
            mm.setSubject("test");

            Address address = new InternetAddress("[email protected]");
            mm.setFrom(address);
            mm.addRecipient(RecipientType.TO, address);

            Transport.send(mm);
            return true;
        }
        catch (NoSuchProviderException ex) {

        }
        catch (MessagingException ex) {

        }

    private class MessageAuthenticator extends Authenticator {

        public MessageAuthenticator(String u, String p){
            username = u;
            password = p;
        }
        
        @Override
        public PasswordAuthentication getPasswordAuthentication() {

            return new PasswordAuthentication(username, password);
        }

        private String username, password;
    }

Kod dziala jesli uruchomie go z aplikacji "stand-alone". Natomiast jesli wlepie ten kod w metodzie EJB to juz mail sie nie wysyla. Wyskakuje wtedy jedynie tekst "DEBUG SMTP: QUIT failed with 250".
Poszukalme ale nie znalazlem rozwiazania. Niby jaka roznica jest pomiedzy JavaMail zaimplementowana w GlassFish a osobno sciagnieta biblioteka?

0

Ok mam juz pewnosc ze to wina serwera GlassFish. Zaimplementowana w nim wersja JavaMail jest jakas zbugowana.
Jesli utworze jakikolwiek projekt podstawowy i dodam biblioteke JavaMail to wysylanie maili dziala bez zadnego problemu. Natomiast w projekcie ktory w bibliotekach ma Glassfish 2.1 juz nie dziala. Odbierac poczte moge ale wyslac juz nie :/

Teraz tylko pytanie co z tym zrobic? Probowalem dodac osobna biblioteke JavaMail pomimo tej zalaczonej w GlassFish i lipa. Nadal ten sam blad.

Jakies pomysly?

0

Ok a wiec w GlassFish 2.x jest JavaMail 1.4.1 ktora wlasnie ma problemy z polaczeniami do kont wymagajacych autoryzacji.
https://issues.apache.org/jira/browse/EMAIL-83?actionOrder=desc

Jest jakas mozliwosc zeby zrobic update JavaMail zawartego w GlassFish na nowsza wersje?
Inaczej wysylanie maili praktycznie jest nie mozliwe:/

0

Probowales w katalogu lib glassfisha podmienic jary? Powinno pojsc.
PS Kiedys pisalem cos podobnego na gf v 2.1 idzialalo wysylanie. Nie wiem dlaczego Ci nie dziala.

0

Tak, podmienilem jara i nie pomoglo :/
Jutro sprawdze jeszcze raz.

Z wysylaniem jest ten problem, ze serwer SMTP wymaga autoryzacji. I tu jest wlasnie kaplica bo w 1.4.1 z tego co widze to to po prostu nie dziala :/

UPDATE: Jednak dziala po podmianie mail.jar. Mylacym jest fakt, ze w debugu nadal podaje JavaMail 1.4.1 ale to juz bez znaczenia bo chodzi jak powinno.

0
folly napisał(a)

Tak, podmienilem jara i nie pomoglo :/
Jutro sprawdze jeszcze raz.

Z wysylaniem jest ten problem, ze serwer SMTP wymaga autoryzacji. I tu jest wlasnie kaplica bo w 1.4.1 z tego co widze to to po prostu nie dziala :/

UPDATE: Jednak dziala po podmianie mail.jar. Mylacym jest fakt, ze w debugu nadal podaje JavaMail 1.4.1 ale to juz bez znaczenia bo chodzi jak powinno.

A mam pytanie: skad sciagnac mail.jar, którego nalezy wrzucic do Glassfish/lib???

0

Po prostu sciagnij sobie najnowsza wersje Java Mail tam bedizesz mial ten plik i podmien go na ten ktory znajduje sie w GlassFish

0

Hmm, umiesz korzystac z wyszukiwarki?
http://java.sun.com/products/javamail/downloads/index.html

0
:: napisał(a)

Hmm, umiesz korzystac z wyszukiwarki?
http://java.sun.com/products/javamail/downloads/index.html

Sciagnalem najnowszy JavaMail - tam jest 5 plikow w tym mailapi.jar a nie mail.jar - zatem zmienilem nazwe i podmeinilem - daej nie idzie - potem wrzucilem do Glassfish/lib jeszcze pozostale 4 jary (m.in smtp.jar, pop3.jar) i dalej nie idzie...Oto blad:

DEBUG SMTP: QUIT failed with 250

O, a teraz taki blad:

javax.mail.MessagingException: Could not connect to SMTP host: poczta.o2.pl, port: 25;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
	at javax.mail.Service.connect(Service.java:310)
	at javax.mail.Service.connect(Service.java:169)
	at javax.mail.Service.connect(Service.java:118)
	at javax.mail.Transport.send0(Transport.java:188)
	at javax.mail.Transport.send(Transport.java:118)
	at client.Klient.main(Klient.java:112)
Caused by: java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:519)
	at java.net.Socket.connect(Socket.java:469)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
	... 7 more

Sciagnalem wersje javaMail 1.4.3...Juz probowalem roznych konfiguracji (z zamiana jarow mail.jar oraz z wrzuceniem wszystkich jarow z javaMail i nic...

Ok juz all jasne - sciagnalem ostatnia, beta wersje javaMail 1.4.4 - z ta wersja dziala...Dzieki za wszelka pomoc

0

Poza tym juz jest Glassfish 3 a tam to dziala dobrze jesli mnie pamiec nie myli :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1