# Mail per JPS sender



## Leroy42 (28. Jan 2006)

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


----------



## Bleiglanz (1. Feb 2006)

es gibt keinen Code der "einfach nur funktioniert" ...

Welche Fehlermeldung GENAU

Code?

Wir können hier nicht hellsehen?

Welcher SMTP Server? 

Security im Webserver aktiviert, logfiles?


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

http://java.sun.com/products/javamail/FAQ.html


----------



## Guest (1. Feb 2006)

Danke für den Link

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

_Quintessential program_ hört sich schon mal gut an   

Ich habe ihn jetzt in eine JSP-Seite eingebaut und auf den Server geladen

```
<%@ 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 (1. Feb 2006)

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


----------



## Leroy42 (1. Feb 2006)

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.


```
#!/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 (1. Feb 2006)

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


```
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


----------



## Leroy42 (1. Feb 2006)

Danke!

Werde den Provider gleich mal belästigen...


----------

