Hi
ich bin es mal wieder und verzweifel grade (mal wieder) etwas.
Folgendes Ziel will ich erreichen:
Mit meinem Programm eine Email über den Anbieter Googlemail versenden. Dieser beinhaltet einen sich nicht veränderbaren Text und einen PDF Anhang(heißt immer gleich und liegt immer an gleicher Stelle).
Ich habe mich also erstmal eingelesen und eine nette Klasse angepasst für googlemail gefunden
Damit verbindet er. Habe testhalber hiermit:
und hiermit:
die Emails ausgeben lassen --> geht.
So ich habe also eine funktionierende Verbindung zu googlemail aufgebaut.
Jetzt hab ich mir gedacht mach ich mir eine Methode in der Klasse die Emails versendet und da geht das elend dann los
Leider bekomme ich wenn ich diese methode (nach erfolgreichem connecten) aufrufe folgenden Fehler:
Habe diesen natürlich mal gegooglet und dort habe ich rausgefunden, dass es eventuell etwas mti Sessions zutun haben könnte. Ich stehe grade echt wie nen Ochs vorm Berg und habe keine ahnung wo ich weiter schauen soll.
Hat jemand einen Tipp für mich? Und sry falls die Frage wieder zur allgemeinen belustigung hier im Forum beiträgt, aber ich bin ja noch dabei zu lernen
ich bin es mal wieder und verzweifel grade (mal wieder) etwas.
Folgendes Ziel will ich erreichen:
Mit meinem Programm eine Email über den Anbieter Googlemail versenden. Dieser beinhaltet einen sich nicht veränderbaren Text und einen PDF Anhang(heißt immer gleich und liegt immer an gleicher Stelle).
Ich habe mich also erstmal eingelesen und eine nette Klasse angepasst für googlemail gefunden
Java:
import com.sun.mail.pop3.POP3SSLStore;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.ContentType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.ParseException;
public class EmailGooglemail {
private Session session = null;
private Store store = null;
private String username, password;
private Folder folder;
public EmailGooglemail() {
}
public void setUserPass(String username, String password) {
this.username = username;
this.password = password;
}
public void connect() throws Exception {
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties pop3Props = new Properties();
pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", "995");
pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
URLName url = new URLName("pop3", "pop.gmail.com", 995, "",username, password);
session = Session.getInstance(pop3Props, null);
store = new POP3SSLStore(session, url);
store.connect();
}
Damit verbindet er. Habe testhalber hiermit:
Java:
public void openFolder(String folderName) throws Exception {
// Open the Folder
folder = store.getDefaultFolder();
folder = folder.getFolder(folderName);
if (folder == null) {
throw new Exception("Invalid folder");
}
// try to open read/write and if that fails try read-only
try {
folder.open(Folder.READ_WRITE);
} catch (MessagingException ex) {
folder.open(Folder.READ_ONLY);
}
}
Java:
public void printAllMessages() throws Exception {
// Attributes & Flags for all messages ..
Message[] msgs = folder.getMessages();
// Use a suitable FetchProfile
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);
for (int i = 0; i < msgs.length; i++) {
System.out.println("--------------------------");
System.out.println("MESSAGE #" + (i + 1) + ":");
dumpPart(msgs[i]);
}
}
So ich habe also eine funktionierende Verbindung zu googlemail aufgebaut.
Jetzt hab ich mir gedacht mach ich mir eine Methode in der Klasse die Emails versendet und da geht das elend dann los
Java:
public void sendMail() throws Exception {
try {
// Eine neue Message erzeugen
Message msg = new MimeMessage(session);
// Hier werden die Absender- und Empfängeradressen gesetzt
msg.setFrom(new InternetAddress("absender@googlemail.com"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("Empfaenger@bla.de", false));
// Der Betreff und Body der Message werden gesetzt
msg.setSubject("Ihr Ticket");
msg.setText("Anbei übersenden wir Ihnen ihr Ticket");
// Hier lassen sich HEADER-Informationen hinzufügen
msg.setHeader("Test", "Test");
msg.setSentDate(new Date());
// Zum Schluss wird die Mail natürlich noch verschickt
Transport.send(msg);
} catch (Exception ex) {
ex.printStackTrace();
}
}
Leider bekomme ich wenn ich diese methode (nach erfolgreichem connecten) aufrufe folgenden Fehler:
run:
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at testbild.EmailGooglemail.sendMail(EmailGooglemail.java:207)
at testbild.emailtesten.main(emailtesten.java:29)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
... 8 more
Habe diesen natürlich mal gegooglet und dort habe ich rausgefunden, dass es eventuell etwas mti Sessions zutun haben könnte. Ich stehe grade echt wie nen Ochs vorm Berg und habe keine ahnung wo ich weiter schauen soll.
Hat jemand einen Tipp für mich? Und sry falls die Frage wieder zur allgemeinen belustigung hier im Forum beiträgt, aber ich bin ja noch dabei zu lernen