2012-12-12 19 views
5

Mam program Java, który został zainstalowany na starym komputerze z systemem Ubuntu i wysłał pocztę za pomocą javax.mail. Jednak ten komputer przestał działać i teraz używam tej samej aplikacji Java na nowym komputerze CentOS.Serwer pocztowy z javax.mail i CentOS

Jednak pojawia się błąd "MessagingException: 501 Składnia: HELO nazwa hosta" podczas próby wysłania wiadomości e-mail za pomocą mail.smtp.host = 127.0.0.1.

Domyślam się, że serwer pocztowy nie jest jeszcze aktywowany w tym CentOS.

W jaki sposób skonfigurować serwer pocztowy, z którego może korzystać javax.mail?

Dziękuję

Odpowiedz

0

Musisz uruchomić sendmail. Aby uzyskać więcej informacji, patrz here. Konfiguracja sendmail może być uciążliwa, a jeśli to możliwe, możesz chcieć pobrać konfigurację sendmail.cf ze starego komputera.

Podejrzewam (także), że powinieneś mieć ustawiony centralny agent MTA (agent transportu poczty), tak aby wszystkie komputery w przedsiębiorstwie używały tego, zamiast uruchamiać po jednym na hosta. tj. nie przy użyciu localhost.

+0

Próbowałem połączyć się z portem 25 za pomocą Telnet i wysyłanie przykładowy adres e-mail, a ta wiadomość e-mail jest wysyłana idealnie Czy to oznacza, że ​​aplikacja Java również powinna działać? –

1

Problem polega na tym, że usługa nazewnictwa na nowym komputerze nie jest poprawnie skonfigurowana i Java nie może znaleźć nazwy hosta urządzenia. Polecenie HELP SMTP musi zawierać nazwę hosta. Serwer narzeka, ponieważ go brakuje. Włącz debugowanie sesji JavaMail i zobacz rzeczywiste polecenie, które jest wysyłane. Możesz obejść ten problem z konfiguracją hosta, ustawiając właściwość JavaMail mail.smtp.localhost na nazwę hosta, której chcesz użyć w poleceniu HELO.

+1

Podążyłem za przewodnikiem w Internecie, aby naprawić ten problem, który rzekomo powinien przejść do pliku/etc/hosts i dodać mapowanie 127.0.0.1 na nazwę domeny komputera i tak zrobiłem, nadal nie działał po. Czy to właśnie miałeś na myśli? –

+1

Czy urządzenie ma statyczny adres IP, czy też otrzymuje adres IP z DHCP? ma statyczny adres IP, który powinien znajdować się w/etc/hosts z nazwą komputera.Jeśli pobierze go z DHCP, odwrotne wyszukiwania DNS tego adresu IP muszą zwrócić poprawną nazwę hosta. Prawdopodobnie musisz porozmawiać z twoją siecią lokalną ekspertem, aby uzyskać wszystkie te ustawienia poprawnie. –

2

I napotkał ten sam problem "MessagingException: 501 Składnia: HELO hosta" podczas wysyłania wiadomości e-mail z wiosennym MailSender. Co działa dla mnie jest dodanie dodatkowej nieruchomości w "mail.smtp.localhost" pod javaMailProperties jak poniżej:

<!-- JAVA MAIL --> 
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="" /> 
    <property name="port" value="25" /> 
    <property name="protocol" value="smtp" /> 
    <property name="username" value="" /> 
    <property name="password" value="" /> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtps.auth">true</prop> 
      <prop key="mail.smtps.starttls.enable">true</prop> 
      <prop key="mail.smtps.debug">true</prop> 
      <prop key="mail.smtp.localhost">localhost</prop> 
     </props> 
    </property> 
</bean> 
-1

W moim przypadku etc/hostname był susetest (a nie linux.company.com)

Zmodyfikowano etc/hosts z 127.0.0.1 localhost na 127.0.0.1 localhost susetest (również po localhostu upewnij się, że używasz zakładki, podczas modyfikowania pliku)

Upewnij się, że zapisałeś zmiany, postfix stop, postfix uruchom ponownie serwer SMTP.

Powinno działać poprawnie.

(dodanie właściwości. SetProperty ("mail.smtp.localhost", "ourcompany.com "), do właściwości również rozwiązać problem, ale obejście nie powinno być naprawić, kiedy można znaleźć główną przyczynę, nawet jeśli zajmie to kilka dni w moim przypadku)

+0

Powód donoszenia! – Arnold