Hallo alle zusammen
Wir müssen so ein Testprogramm schreiben mit deren Hilfe wir E-Mails senden können. Aber bei mir klappt es eigentlich nicht so gut. Da komme ich immer bei jedem Versuch zu irgendwelchen Exception oder Fehler. Ich habe dafür 2 Klassen gemacht. Eine ist SendMail, wo die Methoden sind und die andere ist SendingMail, wo die Main Methode sich befindet.
Und das hier ist meine sozusagen Testklasse :
Und das hier sind die Fehler/Еxceptions, zu denen ich komme:
P.S. Die beiden E-mails die da stehen al4en_guz@abv.bg und al4en_guz1@abv.bg sind nur zum Testen da, also ihr koennt die ruhig mal benutzen. Vielen dank im voraus für eure Tipps und Hilfe :=)
Java:
import java.security.Security;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Transport;
public class SendMail {
private String mailhost = "smtp.abv.bg";
public synchronized void sendMail(String subject, String body, String sender, String recipients)
throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.socketFactory.port", "25");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("al4en_guz@abv.bg", "222728");
}
});
System.out.println("Credentials defined…………");
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setFrom(new InternetAddress(sender));
message.setSubject(subject);
message.setContent(body, "text/plain"); // this is for plain body text
// message.setContent(body, “text/html”); // this is for html body
if (recipients.indexOf("@") > 0) {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
} else {
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
}
Transport.send(message);
System.out.println("mail sent successfully…");
}
}
Und das hier ist meine sozusagen Testklasse :
Java:
public class SendingMail {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
System.out.println("mail sending…………");
SendMail mailutils = new SendMail();
mailutils.sendMail("Subject – www.opencodeworld.com", "body text – Knowledge Hub", "al4en_guz@abv.bg", "al4en_guz1@abv.bg");
}
}
Und das hier sind die Fehler/Еxceptions, zu denen ich komme:
Java:
mail sending…………
Credentials defined…………
Exception in thread "main" javax.mail.SendFailedException: Send failure (javax.mail.MessagingException: Connection error (java.io.IOException: Error connecting to smtp.abv.bg, 25))
at javax.mail.Transport.send(Transport.java:163)
at javax.mail.Transport.send(Transport.java:48)
at SendMail.sendMail(SendMail.java:50)
at SendingMail.main(SendingMail.java:12)
Caused by: javax.mail.MessagingException: Connection error (java.io.IOException: Error connecting to smtp.abv.bg, 25)
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:408)
at javax.mail.Service.connect(Service.java:265)
at javax.mail.Service.connect(Service.java:85)
at javax.mail.Service.connect(Service.java:70)
at javax.mail.Transport.send(Transport.java:94)
... 3 more
Caused by: java.io.IOException: Error connecting to smtp.abv.bg, 25
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.getConnectedSocket(SMTPTransport.java:1162)
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.getConnection(SMTPTransport.java:856)
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:385)
... 7 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.getConnectedSocket(SMTPTransport.java:1134)
... 9 more
P.S. Die beiden E-mails die da stehen al4en_guz@abv.bg und al4en_guz1@abv.bg sind nur zum Testen da, also ihr koennt die ruhig mal benutzen. Vielen dank im voraus für eure Tipps und Hilfe :=)