Mail per JPS sender

Status
Nicht offen für weitere Antworten.
L

Leroy42

Gast
Hallo@All,

ich bin ziemlich am Verzweifeln :autsch:

Seit Wochen versuche ich vergeblich eine email von einer JSP-Seite zu verschicken.

Ich habe in mehreren Foren nach Informationen gesucht und verschiedenste Code-Schnippsel
zusammengetragen, bekomme aber fast genausoviel Fehlermeldungen wie Code-Schnippsel, wie
"User not in list of allowed recipients", "Could not connect to SMTP host: localhost", ... :(

Bevor ich hier jetzt meine verschiedenen und verhunzten JSP-Seiten code, möchte
ich fragen ob hier nicht jemand, für so eine Allerweltsaufgabe, ein einfaches, kleines Stück
Code posten kann das einfach nur funktioniert :bahnhof:

Bisher habe ich die Archive "activation.jar", "mail.jar" und "pop3.jar" auf den Server gespeichert.

Soweit ich das verstanden habe muß ich erst einn "Pop3"-Abruf starten damit der Server
überhaupt weiß, daß ich die Erlaubnis zum Senden habe (SMTP kennt ja kein Passwort).
Der Teil scheint ja auch zu funktionieren (Ich lasse mir ausgeben wieviele e-mails im Posteingang
liegen).

Ich habe z.B. in den Code-Schnippseln gesehen, daß bei irgendwelchen Properties
"mail.smpt.auth" auf "true" gesetzt werden muß, kann aber nirgends die Klasse
"MailAuthenticator" oder "Authenticator" finden.

Also bitte mal ein einfachen Code posten ohne irgendwelche, tolle Features der
aber endlich funktioniert. Wenn es wenigstens einmal klappen würde,
eine stinknormale email zu versenden, kann ich mich ja immer noch in die Feinheiten
einarbeiten; bis jetzt ist alles nur noch frustrierend.

Danke im Voraus
 
G

Guest

Gast
Danke für den Link

http://javaalmanac.com/egs/javax.mail/SendApp.html

Quintessential program hört sich schon mal gut an :D

Ich habe ihn jetzt in eine JSP-Seite eingebaut und auf den Server geladen
Code:
<%@ page import="java.lang.Thread,
            java.io.*,
            javax.mail.*,
            javax.mail.internet.*,
            javax.activation.*" %>
<%!

String send(String smtpHost, int smtpPort,
                                String from, String to,
                                String subject, String content) {
        String res = "";
        try {
            // Create a mail session
            java.util.Properties props = new java.util.Properties();
            props.put("mail.smtp.host", smtpHost);
            props.put("mail.smtp.port", ""+smtpPort);
            Session session = Session.getDefaultInstance(props, null);

            // Construct the message
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            msg.setSubject(subject);
            msg.setText(content);

            // Send the message
            Transport.send(msg);
            res = "Mail gesendet";
        } catch (Exception e) {
            res = e.toString();
        }
        return res;
        }
%>
<html>
<body>
  <%=send("mail.weltgebetsuhr.de", 25, "info@weltgebetsuhr.de", "info@weltgebetsuhr.de","Mail von WGB", "Hier ist der Text")%>
</body>
</html>

und bekomme als Fehlermeldung (JSP-Ausgabe)


javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused
 

Bleiglanz

Gesperrter Benutzer
läuft auf deinem localhost überhaupt ein SMTP Server (WindowsServer, postfix, exim, sendmail, oder was auch immer)??

lies die oben geposteten FAQ

man kann keine Emails verschicken ohne einen SMTP Server zu verwenden
 
L

Leroy42

Gast
Die FAQ habe ich schon durchforstet, finde aber kein Posting das meine
Fehlermeldung beinhaltet und mir helfen könnte.

Unsere Seiten werden bei Terions gehostet; localhost taucht in der Fehlermeldung
wahrscheinlich nur auf, weil es sich aus Sicht des Servers eben um den localhost handelt.

Ein SMTP Server/Dienst läuft dort und es ist vermutlich sendmail, weil dieses Programm
in dem Perl-Script, was ich z.Z. problemlos nutzen kann, erwähnt wird.

Code:
#!/usr/bin/perl
use strict;
use CGI;

my $query = new CGI;
my %hash = $query->Vars;

open MAIL, "|/usr/sbin/sendmail -t" or die "Cannot send mail: $!";
print MAIL "To: info\@weltgebetsuhr.de\n";
print MAIL "From: info\@weltgebetsuhr.de\n";
print MAIL "Subject: Kontaktformular\n\n";

foreach my $key (keys %hash) {
  print MAIL "$key: $hash{$key}\n";
}

close MAIL;

my $danke = "/HTML/deutsch/Danke.html";
print "Location: $danke\n\n";

Nun habe ich allerdings keinen blassen Schimmer von Perl und weiß nicht wie
dieses Script arbeitet, geschweige denn, wie ich es ändern kann um die Mail
um eigene Daten zu erweitern oder die im vorhergehenden Formular eingegebenen
Werte zu untersuchen. Ich sehe nur, daß eine vorhergehende pop3-Authentifizierung
in Perl anscheinend nicht notwendig ist.
 

Bleiglanz

Gesperrter Benutzer
OK, SMTP haste, ist doch schonmal was gutes

Frag mal deinen Provider, ob eine security-policy für den Webcontainer vorhanden ist, du brauchst sowas wie

Code:
  permission java.net.SocketPermission "localhost:25" "connect";

(glaub ich aber eher nicht, gäb ne andere Exception)

möglicherweise werden nur connects von einer bestimmten Domain angenommen ("relayed"), und/oder es kommen andere Sicherheitstechniken zum Einsatz

schreib einfach eine Email an deinen Hoster, die können das schneller lösen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben