perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 34
Click for quality!




11.02.2012 / 13:17

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragFormmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hallo erst mal:
Warum geht das hier nicht?

#!/perl/bin/perl -w

#Mailprogramm und Zielmailadresse setzen
$Sendmail_Prog = "/Programme/Mozilla Thunderbird/thunderbird.exe";
$mailto = "Hendrik\_Kammholz\@web.de";

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

@Feldnamen = $cgi->param(); #Einlesen aller Parameter als assoziatives Array
print $cgi->header(),
$cgi->start_html('CGI-Feedback'),
$cgi->h1('CGI-Feedback vom Programm ',$cgi->i('Mailtest.pl'));

#********* Hier werden HTML-Formularfelder eingelesen **********
$trennzeichen = $cgi->param('delimiter');
$returnhtml = $cgi->param('return');
$subject = $cgi->param('subject');
#***************************************************************
$subject =~ s/\s/ /g; #Seite 118, Kamel also Suche Whitespave-Zeichen und ersetze durch Blank
print "$mailto";
$mailtext = "";
foreach(@Feldnamen)
{
$Feldnamen = $_; #Lies einen Feldnamen
@values = ""; #Initialisiere die Wertetabelle
@values = $cgi->param($Feldnamen); #Lies die Feldinhalte

#Wenn es keine versteckten Felder sind dann...
if($Feldnamen ne "return" && $Feldnamen ne "subject" && $Feldnamen ne "delimiter" && $Feldnamen ne "senden")
{
foreach $feldwert (@values)
{
$mailtext = $mailtext . $Feldnamen; #Nutzfelder einlesen
$mailtext = $mailtext . $trennzeichen;
$mailtext = $mailtext . $feldwert."<br>";
}
}
}

# -------> E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

Ein Formmailer für Windows mit Mozilla Thunderbird.
Das Html-Formular ist OK! (getestet durch Ausgabe unter Perl)
Perl-Interpreter = Active-Perl
Muss Das Internet-laufen, wenn man das Script ausführt, oder müsste Windows irgendwie daruf hinweisen und DFÜ-Verbindung anbieten?
Oder läuft das alles nur unter Linux mit sendmail??
Gruß Haka

Datum: 25.01.2006-13:45

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

kann man denn thunderbird über die command-line aufrufen? Denn das ist es, was Du versuchst:

"$Sendmail_Prog = "/Programme/Mozilla Thunderbird/thunderbird.exe";
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";"

Würde mich wundern, wenn das soooo geht. Hast Du einfach den sendmail Aufruf durch den Pfad für Thunderbird ersetzt?

Gruss,
Sven

Datum: 25.01.2006-14:25

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hab mir so was gedacht. Hättest Du vielleicht einen Tipp, welche Programm man da unter Windows einsetzen könnte, damit das ganze funktioniert?

Datum: 25.01.2006-15:17

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

Google ist Dein Freund:

http://www.indigostar.com/sendmail.htm

Gruss,
Sven

PS: und um gleich die andere Frage noch mitzubeantworten: natürlich muss Deine Internetverbindung vorher stehen.

Datum: 25.01.2006-15:29

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Danke Dir herzlich. Einfach undunkompliziert. Das ist OK! Ich probiers mal damit
Gruss Haka

Datum: 25.01.2006-16:45

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

vielleicht hilf das weiter.

http://forum.de.selfhtml.org/archiv/2003/10/t60281/#m339023

-uw

Datum: 25.01.2006-15:31

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Ja, hamster hatte ich auch mal angetestet, als ich noch in der M$ Welt unterwegs war - sha ziemlich gut aus, ist allerdings schwer überdimansioniert für des Vorhaben hier.

Ich würde da sendmail für Windows oder auch das in dem link von Dir genannte Modul sendmail für Perl vorziehen (ich kenne das zwar nicht, das hat aber nix zu heissen)

Sven

Datum: 25.01.2006-15:43

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

ich hab noch das hier gefunden:
http://www.ntsendmail.com/

Scheint genau das zu sein, was Du brauchst.

Gruss,
Sven

Datum: 25.01.2006-16:09

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hallo erstmal!
Ich melde mich wieder wegen meines Formmailer-Problems. HTML-Formular und Perl-Script scheinen zu funktionieren. Nun habe ich sendmail für Windows in einer Testversion heruntergeladen und installiert. Die dortige Konfigurationsdatei habe ich jedoch nicht verändert. Sie hat folgendes Aussehen.
[OPTIONS]
;Mail servers host name
MAILSERVER=mail.yourhost.com
;Default value for senders email address
FROM=yourname@yourhost.com
;Mail servers IP port
PORT=25
;Timeout interval value when sending mail in seconds
TIMEOUT=180
;Registration key
REGKEY=none
;Default value for reply-to address
REPLYTO=

Ihr ahnt schon die Frage: Was ist einzutragen, damit die Sache endlich funktioniert? Ich schaue mich parallel zur Frage natürlich im Internet nach einer Lösung um. Nur: So wie jetzt, funktioniert es nicht.
Meine Konfiguration zu Hause:
Windows XP (PC-Name = “pc2")
Fritz-Card für ISDN-Anschluss
Provider : Freenet
Mail-Provider: Web.de mit “smtp.web.de” und “pop3.web.de”
Ansonsten natürlich Apache, Active-Perl

Ich wäre - wie immer - sehr dankbar für eine Lösung.

Gruß Haka
PS. Ich weiß, dass diese Frage eigentlich nicht hierher gehört, aber eigentlich kam der Vorschlag für sendmail aus diesem Thread. Deshalb versuch ich’s halt mal.

Datum: 26.01.2006-07:49

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

habe mittlerweile auch gesehen, dass das Ding Geld kostet - buh! Würde ich nicht nehmen.
Was Du da hast sieht nach der 2.x Version aus, die hat keine Authentifizierung zum Server. Du müsstest schon die 3.x beta nehmen.

Prinzipiell ist

MAILSERVER=smtp.web.de
FROM=yourname@yourhost.com # natürlich geändert

und dann müssten noch die Authentifizierungsdaten dazu, damit der Deine Mail überhaupt annimmt (falls er SMTPAUTH überhaupt macht).

Ich würde aber eher das hier nehmen: http://www.ntsendmail.com/, das scheint mir wie gesagt eher geeignet zu sein.

Was Dir aber klar sein muss: keine der Lösungen hier macht Dir die Verbindung ins Internet, die muss entweder automatisch hergestellt werden oder schon bestehen.
Hamster wiederum ist ein kompletter eignener Mailserver, der auf Deiner Maschine läuft und dem Du beibringen kannst, mails nach draussen regelmäßig zu verschicken. Der kann dann - soweit ich weiss - auch die Verbindung unter Windows triggern. Allerdings ist der Hamster nicht so ganz trivial. Wenn Du den versuchen willst (was ich Dir erstmal nicht empfehlen würde), dann schau in den Hamster Foren, das hat dann mit perl nix mehr zu tun. Du würdest aber dann immer noch eine Lösung brauchen, wie die mail von Deinem Skript zum Hamster kommt. Deshalb würde ich mir ntsendmail anschauen.

Gruss,
Sven

Datum: 26.01.2006-10:23

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hallo Sven!
Mittlerweile bin ich ein “Nervenbündel”.
Ich habe Sendmail für Windows probiert - nix.
Habe noch eine Anfrage zur Konfiguration von Sendmail laufen (Von wegen was muss ich eintippen bei “Default value for senders email address [yourname@yourhost.com]” usw...)

Parallel dazu habe ich mir ArgoSoft Mailserver angeschaut und eingerichtet. - nix
Angeblich brauche ich trotzdem eine Art sendmail, die ich noch zusätzlich installieren soll, damit da was klappt.
Perl Modul Mail::Sendmail
Ein MTA: nms sendmail (kostenlos!) Also noch ‘ne Installation
Auch noch eine Anfrage am Laufen......

Nun Krieg ich ‘ne Mail von Dir mit dem Tipp NTSendmail zu nutzen. Ich hatte NT-Sendmail downgeloaded. Leider alles auf Englisch, das hält natürlich auf. Zusätzlich muss man auch dort Konfigurationsschritte gehen und es stellen sich für mich die gleichen Fragen wie in anderen Softwarelösungen auch. Wie ist das Ding zu konfigurieren??
Wenn ich nicht weiß, welche Werte ich an bestimmter Stelle einzutragen habe, dann nutzt mir natürlich keine der Lösungen. (Anfängerpech oder?)
Also ein Versuch:
Bei NTSendmail ist folgende Konfiguration durchzuführen:

Hier Das Perl-Script live aus NTSendmail
#! /usr/bin/perl -w
$|=1;
$sendmail = "/usr/lib/sendmail";
open (MAIL, "| $sendmail -t -f \'tester\@1testdomain.com\'") || die ("Opening pipe failed.");
print MAIL "From: tester\@1testdomain.com\r\n";
print MAIL "To: tester\@1testdomain.com\r\n";
print MAIL "Subject: Message from NTsendmail\r\n";
print MAIL "Hi there. This script sure works great on UNIX, doesn't it?\r\n";
close (MAIL);
exit 0;

Hier die Konfig-Einstellungen live aus NT-Sendmail:
SOLUTION:
Install NTsendmail.pm, the NTsendmail object module in your perl libraries directory. Typically "c:\\perl\lib\."
Wie denn, einfach nur hinkopieren??

Modify your scripts to work with NTsendmail. NTsendmail syntax is as follows:
$ENV{"NTsendmail"} = "your.mail.server"; Was schreib ich da hin??? Das muss ich ganz exakt wissen sonst hat wohl alles keinen Sinnn.
$mail = new NTsendmail;
$mail->send($sender, $recipient, $subject, $message);

Und nur zur Sicherheit: Was steht in $sender und in $recipient???

Vielen Dank für Deine Mühe! Hendrik

Datum: 26.01.2006-14:33

Beitragre: Formmailer in Perl läuft nicht unter Windows - oder?
Seitenanfang
Hi,

nur die Ruhe...

Aber auch im Ernst: wenn das alles für Dich soooo schwierig ist, solltest Du vielleicht erst einmal kleinere Brötchen backen, sonst verleidet Dir der Frust weitere Experimente.

Nun zu Deinen Problemen:

"SOLUTION:
Install NTsendmail.pm, the NTsendmail object module in your perl libraries directory. Typically "c:\\perl\lib\."
Wie denn, einfach nur hinkopieren??"

Ja

"Modify your scripts to work with NTsendmail. NTsendmail syntax is as follows:
$ENV{"NTsendmail"} = "your.mail.server"; Was schreib ich da hin??? Das muss ich ganz exakt wissen sonst hat wohl alles keinen Sinnn."

Wie bereits in meinem letzten Kommentar: Der SMTP Server Deines Providers (POP3 zum Abholen von dort, SMTP zu hinschicken), also smtp.web.de.

"$mail = new NTsendmail;
$mail->send($sender, $recipient, $subject, $message);

Und nur zur Sicherheit: Was steht in $sender und in $recipient???"

$sender ist Deine email-Adresse, $recipient die desjenigen, der die Mail bekommen soll (http://dict.leo.org...).

Viel Glück,
Sven

PS: Ehrlich gesagt glaube ich, dass Dir wirklich die Grundlagen fehlen für so ein Unterfangen. Würde mich nicht wundern, wenn web.de Deine mail nicht einfach so annimmt (sonst könnte das ja jeder Spammer so machen), sondern erst nach Authentifizierung und dann wird's noch übler. Sorry, ich will nur ehrlich sein und Dir wenn möglich Frust vermeiden...

Datum: 26.01.2006-15:00

-






-
-