• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaMailSender - co blokuje wysyłanie wiadomości?

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
676 wizyt
pytanie zadane 24 maja 2016 w Java przez Mya Bywalec (2,790 p.)
edycja 24 maja 2016 przez Mya

Pytanie dotyczy aplikacji mvc spring uruchamianej na localhost poprzez glassfish.

Częścią aplikacji jest wysyłanie wiadomości email. Działa to poprawnie gdy uruchamiam aplikację na swoim sprzęcie, jednak po uruchomieniu na innym komputerze, występuje błąd: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

Jako, że problem nie występuje u mnie (wiadomości są poprawnie wysyłane), domyślam się, że problemem nie jest kod, a konfiguracja systemu / sieci drugiego komputera (win7).

Nie mam dostępu do drugiego komputera, więc rozwiązania muszę szukać na odległość, dlatego proszę bardziej doświadczone osoby o wskazanie co może blokować wysłanie i jak temu zapobiec (np. jak zmienić port, z którego wysłane są wiadomości).

Kod wysłania:    

@Autowired
JavaMailSender mailSender;
//...
String adress = "a@a.com";
String content = "...";
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, false, "utf-8");
message.setText(content, "UTF-8", "html");
helper.setTo(adress);
helper.setSubject("Title");
helper.setFrom("b@b.com");
mailSender.send(message);

Konfiguracja mailSender:

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.gmail.com" />
        <property name="port" value="465" />
        <property name="username" value="adress@gmail.com" />
        <property name="password" value="password" />
        <property name="javaMailProperties">
            <props>
                <prop key="mail.transport.protocol">smtp</prop>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.debug">true</prop>
                <prop key="mail.smtp.socketFactory.port">465</prop>
                <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
                <prop key="mail.smtp.socketFactory.fallback">false</prop>
            </props>
        </property>
    </bean>

 

komentarz 24 maja 2016 przez Mya Bywalec (2,790 p.)
Dodam, że wysyłanie maila jest blokowane na moim komputerze przez antywirus, ale wyłączenie go rozwiązuje problem.

Na drugim komputerze wyłączenie antywirusa nie pomaga.
1
komentarz 24 maja 2016 przez bumpMind Gaduła (4,260 p.)
Strzał w ciemno: a zapora?
komentarz 24 maja 2016 przez Mya Bywalec (2,790 p.)
Nie jest to kwestia zapory.

Te wiadomości wysyłane są przez port 25? Da się go zmienić, na wypadek gdyby był on zablokowany?
1
komentarz 25 maja 2016 przez bumpMind Gaduła (4,260 p.)

Z tej stronki Google support wynika że pobieranie wiadomości działa na porcie 995 a wysyłanie 587 oraz 465. Z konfiguracji widze że kożystasz z portu drugiego, spróbował bym ustawić go na 587 i przetestować. O ile nie występuje blokowanie portu po stronie programu a tak można wywnioskować z błędu to może zadziała, jest parę wątków na zagranicznych forach o podobnym/takim samym temacie, przykładowo: link co prawda forum .net ale reszta się zgadza :P Edit. po logach wywnioskowałem że chodzi o Gmail stąd takie nakierowanie

komentarz 25 maja 2016 przez Mya Bywalec (2,790 p.)
W liniach 3 i 12 (w drugim kodzie) powinien być ustawiony ten sam port?
komentarz 25 maja 2016 przez bumpMind Gaduła (4,260 p.)

Nie robiłem nigdy programu tego typu (na razie :P) ale myślę że pierwszy port to port na serwerach Gmail zatem tam na pewno powinien być 587 natomiast drugi to konfiguracja SocketFactory czyli lokalny port, jeśli port 587 nie jest na kompie zablokowany albo jeśli nie ma innego dedykowanego to użył bym w obu miejscach tego samego

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 780 wizyt
0 głosów
1 odpowiedź 1,004 wizyt
0 głosów
1 odpowiedź 558 wizyt
pytanie zadane 25 lutego 2018 w PHP przez mi-20 Stary wyjadacz (13,250 p.)

93,439 zapytań

142,431 odpowiedzi

322,677 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...