JavaMail: Wie bekommt man rückgabecodes vom Server?

Status
Nicht offen für weitere Antworten.

richardkrieger

Aktives Mitglied
Hallo,

versand funktioniert. Möchte aber die Rückmeldung von Server abfangen, ob Versand erfolgreich war, also wenigstens den Code(250 ist, glaube ich, OK). Weiss vielleicht noch jemand, ob es irgenwo eine Liste gibt, wo die Codes beschrieben sind, damit man eine vernünftige deutsche Fehlermeldung ausgeben kann?

Die Methode:
Code:
	private void senden(String[] sendeDaten){
		String vorname=sendeDaten[0];
		String nachname=sendeDaten[1];
		String email=sendeDaten[2];
		Properties eigenschaften=new Properties();
		eigenschaften.put("mail.smtp.host", xmlStelle.getXMLString(iniPfad, "SMTPServer"));
		eigenschaften.put("mail.smtp.auth", "true");
		eigenschaften.put("mail.debug", "true");
		Authenticator zugang=new JavaxAuth(xmlStelle.getXMLString(iniPfad, "SenderUser"),xmlStelle.getXMLString(iniPfad, "SenderPass"));
		Session sess=Session.getDefaultInstance(eigenschaften, zugang);
		sess.setDebug(true);
		MimeMessage nachricht=new MimeMessage(sess);
		try{
			nachricht.setFrom(new InternetAddress(xmlStelle.getXMLString(iniPfad, "SenderMail")));
			nachricht.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
			System.out.println(email);
			nachricht.setSubject(editorFenster.getBetreff());
			nachricht.setText(editorFenster.getText());
			Transport.send(nachricht);
			} catch(AddressException ae){
			System.out.println(ae.toString());
			}catch(MessagingException me){
			System.out.println(me.toString());
			}

		
	}
 
versuche es mal mit

com.sun.mail.smtp.SMTPTransport.getLastReturnCode()

> Return the return code from the last response we got from the server.

oder

com.sun.mail.smtp.SMTPTransport.getLastServerResponse()

> Return the last response we got from the server
 
Super, jetzt weis ich, wo ich anfangen muss. Danke!


also try...catch sieht jetzt bei mir so aus

Code:
		try{
			SMTPTransport transporter=new SMTPTransport(sess,new URLName(xmlStelle.getXMLString(iniPfad, "SMTPServer")));
			nachricht.setFrom(new InternetAddress(sender_voll));
			nachricht.addRecipient(Message.RecipientType.TO, new InternetAddress(empfaenger_voll));
			nachricht.setSubject(editorFenster.getBetreff());
			nachricht.setText(editorFenster.getText());
			SMTPTransport.send(nachricht);
			System.out.println(transporter.getLastReturnCode());
			} catch(AddressException ae){
			System.out.println(ae.toString());
			}catch(MessagingException me){
			System.out.println(me.toString());
			}
habe auch

Code:
transporter.send(nachricht);

ausprobiert. Resultate sind gleich, auch im Fehlerfall:
getLastReturnCode liefert immer 0
getLastServerResponse liefert immer null

Im zweiten fall ist die Zeile unterstrichen, da "send" statisch angesprochen werden muss.
schaue mir .sendMessage(message,Address[]) an. vielleicht klappt's damit.
 
OK, es funktioniert:

Methode:
Code:
	private void senden(String[] sendeDaten){
		String vorname=sendeDaten[0];
		String nachname=sendeDaten[1];
		String email=sendeDaten[2];
		String empfaenger_voll=vorname+" "+nachname+" <"+email+">";
		String sender_voll=xmlStelle.getXMLString(iniPfad, "SenderName")+" <"+xmlStelle.getXMLString(iniPfad, "SenderMail")+">";
		Properties eigenschaften=new Properties();
		eigenschaften.put("mail.smtp.host", xmlStelle.getXMLString(iniPfad, "SMTPServer"));
		eigenschaften.put("mail.smtp.auth", "true");
		eigenschaften.put("mail.debug", "false");
		Authenticator zugang=new JavaxAuth(xmlStelle.getXMLString(iniPfad, "SenderUser"),xmlStelle.getXMLString(iniPfad, "SenderPass"));
		Session sess=Session.getDefaultInstance(eigenschaften, zugang);
		sess.setDebug(false);
		MimeMessage nachricht=new MimeMessage(sess);
		try{
			Address[] transemail={new InternetAddress(xmlStelle.getXMLString(iniPfad, "SenderMail"))};
			SMTPTransport transporter=new SMTPTransport(sess,new URLName(xmlStelle.getXMLString(iniPfad, "SMTPServer")));
			nachricht.setFrom(new InternetAddress(sender_voll));
			nachricht.addRecipient(Message.RecipientType.TO, new InternetAddress(empfaenger_voll));
			nachricht.setSubject(editorFenster.getBetreff());
			nachricht.setText(editorFenster.getText());
			transporter.connect(xmlStelle.getXMLString(iniPfad, "SMTPServer"),xmlStelle.getXMLString(iniPfad, "SenderUser"),xmlStelle.getXMLString(iniPfad, "SenderPass"));
			transporter.sendMessage(nachricht, transemail);
			System.out.println(transporter.getLastServerResponse());
			} catch(AddressException ae){
			System.out.println(ae.toString());
			}catch(MessagingException me){
			System.out.println(me.toString());
			}

		
	}
wobei getLastServerResponse folgendes liefert:
250 Message 0MKwtQ-1KBxXx1hVs-0006M4 accepted by mrelayeu2.kundenserver.de
.getLastReturnCode liefert nur denCode:

Herzlichen Dank an DP für den Denkanstoss.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben