[Cologne-pm] Fehler beim Versenden einer E-Mail
Karl-Heinz Kuth
khkuth at freenet.de
Wed Dec 14 06:39:12 PST 2005
Hallo,
>>Was tun, wenn das Modul Email::Send nicht für mein
>>OS/Perlversion verfügbar ist? Die Version sieht so schön
>>einfach aus.
>
> Wie soll das gehen? Das sind alles Pure-Perl-Module. :-)
Weiß ich welches Perlmodul in C kompiliert wurde oder auch in
Abhängigkeit einer bestimmten Perlversion erstellt wurde? Sorry, aber
bei der Masse von Perlmodulen bin ich leicht überfordert. Da schaue ich
nur nach, gibt es das Modul für meine Perlversion oder nicht. Wenn
nicht, dann habe ich erst mal Pech gehabt.
Das Versenden von E-Mails verstehe ich immer noch nicht so richtig. Es
folgt ein bißchen Coding von mir. Anyway, warum wird eigentlich immer
gesagt mal soll use strict verwenden und in allen Beispielen in der
Dokumentation fehlt dieses? Die meisten Beispiele in der Dokumentation
sind sowieso nicht lauffähig. Kommen wir nicht ab des Weges.
Wieso läuft mein Skript nicht? Anpassungen müssen nur oben in der
Variablendeklaration gemacht werden, dann sollte es überall laufen. Der
einkommentierte eval Ausdruck ist noch ein "Relikt" ohne Net::SMTP_auth.
Dies ist ein Auszug eines etwas komplexeren Skriptes zum Versenden von
E-Mails im Batchmodus. Ich kann z. B. den Mailtext aus beliebigen
Textdateien erzeugen, kann beliebige Anhänge anfügen und noch ein paar
andere Dinge. Ich habe es auf ein Minimum reduziert. Falls es noch
Zeilen gibt die nicht klar sein sollen, könnte es darauf zurückzuführen
sein.
Viele Grüße
Karl-Heinz
use strict;
use Net::SMTP_auth;
use Net::Cmd;
use Mime::Lite;
# Variablendeklaration
# müssen angepasst werden:
my $header_absender = 'xxx at gmx.net';
my $mail_to = 'xxx at gmx.net';
my $mailsystem_server = 'mail.gmx.net';
my $mailsystem_user = 'xxx at gmx.net';
my $mailsystem_password = 'xxx';
# können (brauchen aber nicht) angepasst werden:
my $mail_cc = "";
my $mail_bcc = "";
my $mail_betreff = "Mail versenden mit SMTP_auth";
my $mail_text = "The quick brown fox jumps over the lazy dog.";
my $mail_object;
my $smtp_object;
$smtp_object = Net::SMTP_auth->new( $mailsystem_server );
if ( $@ ) {
# Fehlermeldung ist im kompletten Skript etwas aussagekräftger
print "Fehlerursache bei Befehl Net::SMTP_auth: $@ \n";
#
} # ende if ( $@ ) {
$smtp_object->auth( 'CRAM-MD5', $mailsystem_user, $mailsystem_password );
if ( $@ ) {
# Fehlermeldung ist im kompletten Skript etwas aussagekräftger
print "Fehlerursache bei Befehl auth: $@ \n";
#
} # ende if ( $@ ) {
$mail_object = MIME::Lite->new(
From => $header_absender ,
To => $mail_to ,
Cc => $mail_cc ,
Bcc => $mail_bcc ,
Subject => $mail_betreff ,
Type => 'Text' ,
Data => $mail_text );
# Es folgen in einer Schleife eventuelle Anhänge,
# die lasse ich aber zunächst weg.
$smtp_object->data( $mail_object->as_string );
$smtp_object->send ( $mail_to );
$smtp_object->quit;
#eval { $mail_object->send_by_smtp( $mailsystem_server ) };
if ( $@ ) {
# Fehlermeldung ist im kompletten Skript etwas aussagekräftger
print "Fehlerursache bei Befehl send_by_smtp: $@ \n";
#
} # ende if ( $@ ) {
More information about the Cologne-pm
mailing list