[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