Mail versenden

Hallo,

ich habe eine java klasse geschrieben die eine mail versenden soll.
nun bekomme ich leider den fehler:

sun.net.smtp.SmtpProtocolException: 501 Sorry, keine Authentifizierung. POP3 muss vorher benutzt werden. Fehler: ‚unbekannter Benutzer‘ / Sorry, authentification failed. POP3 must be used prior to sending mail. Error: ‚unknown user‘

warum ?
wer den queltext mal sehen will kann mir ja mailen.
Eine Verbindung wird hergestellt. das funktioniert ja.

bitte um schnelle hilfe

mfg … Martin

Zusatz: mail versenden
ich habe versucht über smtp.web.de meine mails zu versenden.
Daran wird es liegen oder ?
Muß ich mich da erst einloggen um meils zu versenden?
oder kann ich einen anderen smtp server benutzen ?

mfg … Martin

Das Wort Authentification und der Rest deine Fehlermeldungen sagt das aus!

so könnte da aussehen

public boolean sendMail()
{
boolean resultstatus = true;
boolean debug = true;

props = new Properties();
props.put(„mail.smtp.host“, this.smtpserver);
props.put(„mail.smtp.auth“,„true“);

session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
try {
// create a message
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(„[email protected]“, „superman“));
InternetAddress[] address = {new InternetAddress(„[email protected]“, „sepp“)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(„betreff“);
msg.setSentDate(new Date());

msg.setContent("**hallo", „text/html“);
// Send message
Transport transport = session.getTransport(„smtp“);
transport.connect( „smtp.xx.de“,
„user“,
„pw“);

transport.sendMessage(msg, msg.getAllRecipients());

}
catch (Exception e)
{
resultstatus = false;
e.printStackTrace();
}
return resultstatus;
}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]**

Hallo Martin,

Hier die Erklärung für Dein Problem.

Was ist eigentlich SMTP after POP und warum wird es benutzt?

Bei SMTP after POP handelt es sich um einen Schutzmechanismus,
den die Anbieter von Maildiensten (wie z.B. GMX) benutzen,
um den Missbrauch ihrer Mailserver zu mindern. Während das
Herunterladen der Mails vom Server auf den eigenen Rechner über
POP3 funktioniert, das eine Anmeldung mit Accountnamen und Passwort
erfordert, ist das Versenden von Mails über SMTP normalerweise
ungeschützt.
Wenn SMTP-Server keinerlei Sicherheitsfeatures besitzen, ist es
möglich diese zum Senden von Mails zu benutzen ohne einen Account
beim Provider zu haben. Damit lassen sich natürlich gut die
unbeliebten Spams verschicken, ohne auf den tatsächlichen Absender
Rückschlüsse ziehen zu können. Außerdem können Mails gefälscht werden,
indem man den SMTP-Server benutzt, der zu einer Mailadresse gehört,
als deren Absender man sich ausgeben will.
Damit nun solche Versuche der unerwünschten Benutzung des Mailservers
vermindert werden, nimmt der SMTP-Server erstmal keine Mails zum
versenden an. Um die Annahme der Mail zu ermöglichen muß erst das
POP3-Postfach abgefragt werden. Dabei wird ein Accountname mit
zugehörigem Passwort übertragen. Damit hat man sich am Mailserver
identifiziert. Jetzt wird der SMTP-Server für die Benutzung zum
Versenden von Mails unter dieser Mailadresse freigeschaltet. Mails
können jetzt wie gewohnt versendet werden. Ist eine bestimmte Zeit
abgelaufen (z.B. 30 min), wird der SMTP-Server wieder für die
Mailadresse gesperrt.

Anmerkung: Was genau im einzelnen beim Provider geschieht,
kann variieren - im einfachsten Fall wird nur die IP-Adresse
für SMTP erlaubt, mit der vorher ein erfolgreicher Abruf per POP3
durchgeführt wurde.

Viele Grüsse
Simon

Danke … und wie komme ich jetzt weiter ?

Ich wollte nur von einer Homepage aus, als eine Art Kontaktformular, mails versenden können.
nur dieses kontaktformular wollte ich selbst schreiben.

bin für jeden tip dankbar …

P.S. wenn jdm weiß woher ich ein Kontaktformular Applet bekomme reicht mir das zur not auch.

Nun das Problem ist, dass Du einen SMTP-Server hast, er eben dieses SMTP-after-POP verlangt.

Eine Möglichkeit wäre, dass Du eine POP-Zugriff vor dem Senden machen würdest.

Hallo,

es gibt viele Möglichkeiten, eine die aber durchaus etwas Arbeit erfordert, ist mit einem „Authenticator“ zu arbeiten.
Wenn du das MailAPI von Sun runterlädst sind sehr viele Beispiele mit dabei inkl. einem Beispiel wo ein Authenticator verwendet wird. --> Ergo lade dir unbedingt mal das „Paket“ dort runter, weil es vom Mini Beispiel bis zum riesen Servlet (senden und empfangen von Mails über ein WWW-Frontend) alles beinhaltet.

Auf der SUN Homepage gibts auch ein super Mail-Tutorial! Da steht auch drin wie du Mails abholen kannst!! Damit hättest du dein SMTP after POP. (Sorry hab die Sache leider nicht im Kopf sonst hätte ich dir hier Beispielcode angegeben.)

regards
Julian