JavaMail - uwierzytelnienie

0

Próbuję wysłać majla takim kodem:

      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "poczta.o2.pl");
      props.setProperty("mail.user", "xxx");
      props.setProperty("mail.password", "xxx");

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("[email protected]"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();

Działa super, ale wymaga autoryzacji poczta.o2.pl, wyskakuje błąd :
Sender address rejected: SERWER poczta.o2.pl WYMAGA UWIERZYTELNIENIA. Zobacz http://pomoc.o2.pl/poczta/autoryzacja/ i skonfiguruj poprawnie program pocztowy.

Jak ustawić autoryzację w JaVIe ???
a może znacie konta pocztowe nie wymagające autoryzacji, chociaż to już nie to samo :-/

0
session=Session.getDefaultInstance(nadawca,new Autentyfikator());

przykładowa klasa Autentyfikator

import javax.mail.*;

public class Autentyfikator extends Authenticator
{
    public PasswordAuthentication getPasswordAuthentication()
    {
        return new PasswordAuthentication("kubuś","puchatek");
    }
}
0

Wstawienie tej linijki kodu zupełnie nic nie zmieniło, wciąż ten sam błąd o źle skonfigurowanym programie pocztowym. [???]

0

props.setProperty("mail.smtp.auth", "true");
?

0

łączy się :-) , ale problem jest z uzupełnieniem pul ;-P

          props.setProperty("mail.transport.protocol", "smtp");
          props.setProperty("mail.host", "poczta.o2.pl");
          props.setProperty("mail.user", "mojnick");
          props.setProperty("mail.password", "xxx");
          props.setProperty("mail.smtp.auth", "true");

.
.
.
return new PasswordAuthentication("mojnick","xxx");

wygląda okej, ale wyskakuje błąd:
class javax.mail.SendFailedException: 554 5.7.1 <[email protected]>: Sender address rejected: Sender address rejected

może chodzi o adres [email protected] który nie istnieje powinien być [email protected] ale tego ustawić się nie da :-/

0

Spróbuj

props.setProperty("mail.from", "[email protected]");
0

Super :-) działa, wielkie dzięki

cały działający kod:

          Properties props = new Properties();
          props.setProperty("mail.transport.protocol", "smtp");
          props.setProperty("mail.host", "poczta.o2.pl");
          props.setProperty("mail.user", "mojnick");
          props.setProperty("mail.password", "xxx");
          props.setProperty("mail.smtp.auth", "true");
          props.setProperty("mail.from", "[email protected]");



          Session mailSession = Session.getDefaultInstance(props, new Autentyfikator());

          Transport transport = mailSession.getTransport();

          MimeMessage message = new MimeMessage(mailSession);
          message.setSubject(teamt);
          message.setContent(tresc, "text/plain");
          message.addRecipient(Message.RecipientType.TO,
               new InternetAddress(adresat));

          transport.connect();
          transport.sendMessage(message,
              message.getRecipients(Message.RecipientType.TO));
          transport.close();
    class Autentyfikator extends Authenticator
    {
        @Override
        public PasswordAuthentication getPasswordAuthentication()
        {
            return new PasswordAuthentication("mojnick","xxx");
        }
    }
0

a jak ustawić w mailu polskie znaki?

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