Hallo miteinander,
ich versuche gerade Mails zu versenden. Habe ich auch schon gemacht, aber bisher habe ich noch nie Authentication gebraucht.
Also: Habe alles so gelassen, wie es ohne Authentication lief, und habe nur im Aufruf von sendMail einen new MyAuthenticator mitgegeben.
Die Methode MyAuthenticator.getPasswordAuthentication wird nicht aufgerufen (habe einen Breakpoint drauf). Was mache ich falsch?
ich vergaß:
bewirft mich bei Aufruf von Transport.send( message ) mit:
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 must be authenticated
ich versuche gerade Mails zu versenden. Habe ich auch schon gemacht, aber bisher habe ich noch nie Authentication gebraucht.
Also: Habe alles so gelassen, wie es ohne Authentication lief, und habe nur im Aufruf von sendMail einen new MyAuthenticator mitgegeben.
Die Methode MyAuthenticator.getPasswordAuthentication wird nicht aufgerufen (habe einen Breakpoint drauf). Was mache ich falsch?
Java:
public boolean sendMail( String mailServer, String subject, String body, String sender, List<String> recipients, Authenticator authenticator ) {
try {
if (0 == recipients.size()) {
return false;
}
Properties properties = new Properties();
properties.setProperty( "mail.host", mailServer );
properties.setProperty( "mail.transport.protocol", "smtp" );
Session mailSession = Session.getDefaultInstance( properties, authenticator );
MimeMessage message = new MimeMessage( mailSession );
message.setSubject( subject );
message.setFrom( new InternetAddress( sender ) );
for (String recipient : recipients) {
message.addRecipient( Message.RecipientType.TO, new InternetAddress( recipient ) );
}
MimeMultipart multipart = new MimeMultipart( "related" );
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent( body, "text/html" );
multipart.addBodyPart( messageBodyPart );
message.setContent( multipart );
Transport.send( message );
} catch (NoSuchProviderException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
return true;
}
public class MyAuthenticator extends Authenticator {
// da stehen natürlich die richtigen Daten
private static final String SENDER = "wüsstetIhrWohlGern";
private static final String PASSWORD = "dito";
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( SENDER, PASSWORD );
}
}
sendMail( "smtp.1und1.de", "Test", "Test", "sender@xyz.de",(Liste die enthält) "empfaenger@xyz.de", new MyAuthenticator() );
ich vergaß:
bewirft mich bei Aufruf von Transport.send( message ) mit:
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 must be authenticated
Zuletzt bearbeitet: