Email mit Javamail versenden

Kulabac

Erfahrenes Mitglied
Wie schon auf der ersten Seite geschrieben benutz ich die Apache-Lösung zum Versenden von Mails. Damit ist es weder mit web.de noch mit gmx.de ein Problem.

So auf Anhieb und ohne mir deinen Code vollständig durchgelesen zu haben, würde ich einfach mal behaupten, du hast das selbe Problem wie insertcoin: Vergessen den Port auf 587 zu stellen wenn du Authentifizierung verwendest. (Hatten wir auch auf der ersten Seite schonmal).
 

uwe75-1

Mitglied
Hallo,

ich würde euch auch gern mein Leid klagen. Es gut um den E-Mail aus einem JAVA Applet heraus.
In Kurzform macht das Applet folgendes:

Es werden Dateien (mehrere auf einmal) auf einen Server hochgeladen. Nach dem Upload soll eine E-Mail versendet werden, die dynamisch generiert wird und über die neuen Dateien auf dem Server informiert.
Der String subject und messageBody werden während des Uploads gefüllt und sollen dann beim Versand der email zum Einsatz kommen.
Solange ich die postmail Methode in meinem Applet nicht aufrufe, läuft es fehlerfrei durch den Compiler. Aber wehe ich versuche, die Methode ganz am Schluß in dem "init"-Teil aufzurufen, dann kommt ein Fehler. Ich bekomme einfach nicht raus, wie ich die korrekt aufrufen muß?

Mein Code schaut wie folgt aus (Kurzfassung):

import java.awt.*;
import java.lang.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;
import java.net.*;
import java.awt.image.*;
import javax.imageio.plugins.jpeg.*;
import javax.imageio.stream.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class upload extends Applet
{
//private
public String categoryName;
private Label progress;
private int currImage;
private int imgCount;

/**
* Image properties
*/
String messageBody;
String subject_message;

/**
* Applet initialisation
*/
public void init()
{.....................
}

{hier fehlt jetzt der ganze Upload Teil}

private static void postMail(String subject, String messageBody) throws MessagingException
{
/*try {*/
Properties prop=new Properties();
prop.put("mail.smtp.host",".....................");
Session s = Session.getInstance(prop);
MimeMessage mailmessage = new MimeMessage(s);
InternetAddress from = new InternetAddress("...............");
mailmessage.setFrom(from);
InternetAddress rcpt = new InternetAddress("..............");
mailmessage.addRecipient(Message.RecipientType.TO,rcpt);
mailmessage.setSubject(subject);
mailmessage.setText(messageBody);
Transport.send(mailmessage);
/*}
catch (MessagingException msgexcep) {
JOptionPane.showMessageDialog(this, "An error occured: " + msgexcep.getMessage());
//JOptionPane.showMessageDialog(msgexcep.getMessage());
}*/
}
}

Vielen Dank schon mal im Voraus für eure Hilfe

Uwe
 

kirina

Mitglied
Ich bekomme auch immer folgende Fehlermeldung:

Code:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.web.de, port: 25;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
	at javax.mail.Service.connect(Service.java:310)
	at javax.mail.Service.connect(Service.java:169)
	at javax.mail.Service.connect(Service.java:118)
	at javax.mail.Transport.send0(Transport.java:188)
	at javax.mail.Transport.send(Transport.java:118)
	at WebMail.sendMail(WebMail.java:79)
	at WebMail.main(WebMail.java:161)
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 java.net.Socket.connect(Unknown Source)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
	... 8 more

ich hab port 25, port 465 sowie port 587 ausprobiert, immer das gleiche! Ich hab inzwischen auch schon soviele Codevorschläge ausprobiert bzw. zusammengebastelt, ich krieg immer diese Fehlermeldung

Liegt das wirklich nur an einer Firewall oder gibt es noch andere Möglichkeiten?

Ich sitz hier in der Arbeit, ich kann also die Firewall hier nicht so wirklich ändern ,-)

Ich werd mal noch schauen, das ich es eventuell von daheim mal ausprobiere, aber falls ihr schon eine Idee habt sagt doch bitte Bescheid!
danke

oh und an alle die folgende fehlermeldung bekommen:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
(z.b. insertcoin)
Ich HATTE das activation framework installiert, und es hieß auch, javamail verträgt sich mit der activation version 1.0.2, demnach also seeehr lange gewundert warum es nicht geht -.-
dem ist nicht so, ihr müsst 1.1 oder sogar 1.1.1 verwenden, dann geht es =) (also zumindest ging es bei mir erst ab da)
 

hammet

himekishi
@kirina
Das selbe Problem hatteich auf der Arbeit auch. Bei mir liegt es an der Firewall/Proxy.
Als ich es von zu Hause aus getestet hatte, ging es ohne Probleme.
 

kirina

Mitglied
danke!

tja dann werd ich den code auf jedenfall heute abend mal daheim testen

wenn ich am ende ein jar file haben mit dem mail-zeug drinnen. und das kommt auf den server, muss ich da irgendwas spezielles beachten?
 

tyrkish

Grünschnabel
Hallo zusammen,
Ich habe hier ein kleines Problem beim versenden von Mails mit Java.

Ich hatte es zwischendurch mal geschafft das Mail versandt wurden, aber im Moment funktioniert es mal wieder nicht und ich weiss auch nicht so Recht warum es nicht mehr geht.

Die Einstellungen von SMTP und die AUTH klappt fehlerfrei, sonst waeren damals die Mails nicht versandt worden.

Ich bekommen nun immer folgende Fehlermeldung ausgegeben:

com.sun.mail.smtp.SMTPSendFailedException: 501 ungueltige mail-adresse / invalid mail-address

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at org.rapla.mail.Mail.sendMail(Mail.java:49)
at org.rapla.mail.Mail.sendeMail(Mail.java:123)
at org.rapla.gui.internal.edit.reservation.ReservationEditImpl$SaveCommand.execute(ReservationEditImpl.java:470)


Aber ich habe das Format und den Inhalt der Mail-Adresse eigentlich nicht veraendert. Wie kann ich diesen Fehler beheben?

Meine Mail-Adressen sind wie folgt beschrieben:

Code:
String username = ""; //Entfernt
	    	String password = ""; //Entfernt
	    	String senderAddress =""; //hier steht ne richtige Mail-Adresse
	    	String recipientsAddress = ""; //hier auch
	    	String subject = "blubb";
	    	String text = "bla";
	    	String smtpHost = "smtp.web.de";
	    	InternetAddress addressTo = new InternetAddress(recipientsAddress);
	    	
	    	new Mail().sendMail(smtpHost, username, password, senderAddress, addressTo, subject, text);

Waere echt super wenn mir da jemand weiterhelfen koennte!

MfG
tyrkish
 

kirina

Mitglied
Mmh komisch, denn das:

com.sun.mail.smtp.SMTPSendFailedException: 501 ungueltige mail-adresse / invalid mail-address

würde ich am ehesten so interpretieren das die Empfänger-Adresse falsch war. Aber nachdem du meintest das du nichts geändert hast und es so schonmal ging....

Hast du vielleicht "äußere" Einwirkung wie Firewall oder sowas verändert?
 

tyrkish

Grünschnabel
Nein an meinen Firewalleinstellungen habe ich nichts veraendert. Ich habe bei meinen ersten Tests eine andere Email-Adresse angegeben. Diese Testmails kamen aber auch nicht immer an, hatte bei diesen Tests den Debugger nicht laufen, hab also nicht gesehen ob es der selbe Fehler war.
Wie auch immer, ich habe dann die Mail-Adresse geaendert, aber auf der neuen kam die Nachricht auch einmal an.
Dies ist ja auch der Grund warum ich es nicht ganz verstehe warum es einmal geht dann wieder nicht und momentan gar nicht.

MfG
 

Neue Beiträge