Email mit Javamail versenden

Kulabac

Erfahrenes Mitglied
Wenn ich raten soll würde ich einfach mal oben bei deinen Properties ein

properties.put("mail.smtp.port", "587");

probieren. Ich kenn's wie gesagt nur mit der Apache-Lösung und da hatte ich einfach die Methode setSmtpPort, aber die gibt's bei der Standard-Mail-API anscheinend nicht.
 

fragglesb

Grünschnabel
Hallo,

habe auch ein Problem mit Mails unter Java.
Vielleicht kann mit da jemand weiterhelfen.

Versand von Mails unter Java habe ich hinbekommen.
Sobald ich mein Programm aber unter Linux laufen lassen werden aus meine deutschen Umlauten lauter Sonderzeichen.
Habe auch schon versucht diese mit der ASCII-Schreibweise darzustellen, leider auch ohne Erfolg.

Weiß da jemand einen Rat?

Danke und Gruß
 

Kulabac

Erfahrenes Mitglied
Für mich klingt es danach, als wenn er unter Linux ein anderes Charset nutzt als unter Windows (wäre auch verständlich solange keins explizit gesetzt ist) :)

Tja ... also mit der Apache-Lösung hat man einfach die Methode setCharset(String charset) zur Verfügung. Fragt sich wie das mit der normalen MailAPI geht ... das weiß ich leider auch nicht. Vielleicht hilft ja Google :)
 

y0dA

Erfahrenes Mitglied
hi!
Code:
 MailAuthenticator auth = new MailAuthenticator(username, password);
Ist das eine selbstgeschriebene Klasse, denn ich finde jene nicht in javax.mail?
username = string
password=string?

mfg
 
M

MeinerEiner_80

Moin!
Selbstgeschrieben von zeja... hättest doch nur mal die vorangegangenen Post angucken müssen!!

gibt aber auch eine Implementation von Apache.. denke mal die wird nicht viel anderes machen..

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:

y0dA

Erfahrenes Mitglied
Argh..
Hab nun den Code testweise übernommen jedoch bekomme ich folgende Exception für folgende Werte:

Code:
javax.mail.MessagingException: Could not connect to SMTP host: mgate.chello.at, port: 587;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:311)
	at javax.mail.Service.connect(Service.java:255)
	at javax.mail.Service.connect(Service.java:134)
	at javax.mail.Service.connect(Service.java:86)
	at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
	at javax.mail.Transport.send0(Transport.java:150)
	at javax.mail.Transport.send(Transport.java:80)
	at at.pcd.wam.technologie.controller.MailController.sendMail(MailController.java:90)
	at at.pcd.wam.technologie.test.TestMail.main(TestMail.java:21)

Code:
public class TestMail {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String smtpHost = "mgate.chello.at";
		String username = "existierende Mail Adresse";
		String password = "password";
		String senderAddress = "existierende Mail Adresse";
		String recipientsAddress = "existierende Mail Adresse";
		String subject = "ich bin subject";
		String text = "ich bin der text blah blah";
		
		MailController.sendMail(smtpHost, username, password, senderAddress, recipientsAddress, subject, text);
	}

}

**EDIT**
Hat sich erübrigt, meine Firewall arbeitete gegen mich.
 
Zuletzt bearbeitet:

marc_242

Grünschnabel
Hi,

Ich habe den obigen Quellcode auch ausprobiert, allerdings kommt bei mir folgende Fehlermeldung:

javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:219)
at javax.mail.Transport.send(Transport.java:81)
at TestProgs.SendMail.sendMail(SendMail.java:49)
at TestProgs.SendMail.main(SendMail.java:103)


Das Ganze habe ich mit meiner yahoo-Addresse ausprobiert, d.h. mit smtpHost = "smtp.mail.yahoo.com" und der Zusatzzeile properties.setProperty( "mail.smtp.port", "587") sowie das "auf true setzen zwecks Authentifizierung" müsste es doch dann eigentlich funktionieren, oder?
Danke