Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10178[/thread]

smtp ignoriert fremde domains

Leser: 1


<< >> 7 Einträge, 1 Seite
belor
 2007-08-22 21:41
#98534 #98534
User since
2007-06-19
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
guten abend,

ich habe mir ein kleines cgi script zum versenden von emails geschrieben.
folgendes szenario funktioniert auch ohne probleme:

sender: test.user@eigene.domain.de
empfaenger: anderer.test.user@eigene-domain.de

allerdings folgendes nicht:

sender: test.user@eigene.domain.de
empfaenger: user@andere.domain.de


dieser ablauf funktioniert allerdings nur mit meinem script nicht.
mit einem normalem mail client, wie thunderbird beispielsweise,
kann ich ohne probleme mit test.user@eigene.domain.de
an z.b. anderer.test.user@eigene-domain.de emails schreiben.

kann mir jemand sagen, wieso fremde domains durch mein script ignoriert werden?
ich würde mich sehr über eine lösung freuen,
ich sehe den grund für das problem leider nicht :(

mfg
belor

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
my $nachricht  = param('nachricht');
my $betreff = param('betreff');
my $empfaenger = param('empfaenger');
if(defined($nachricht) && defined($betreff) && defined($empfaenger)){
$select = $db->prepare ("
SELECT email_adresse
FROM login
WHERE user='$session_user';
");
$select->execute;
my $absender;
while(@result = $select->fetchrow_array){
$absender = $result[0];
}

my $mailServer = "smtp.eigene.domain.de";
my $smtp = Net::SMTP->new($mailServer);
$smtp->mail($absender);
$smtp->to($empfaenger);

$smtp->data();
$smtp->datasend("Subject: $betreff\n");
$smtp->datasend("To: $empfaenger\n");
$smtp->datasend("\n");
$smtp->datasend("$nachricht");
$smtp->dataend();
$smtp->quit;
}
GwenDragon
 2007-08-23 15:22
#98566 #98566
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Und? Ich brauche schon etwas mehr Infos, bitte.
1) Welche Fehlermeldungen kommen bitte, wenn nichts gesendet werden kann?
Du testest in deinem Skript ja noch nicht einmal, ob die Datenbankabfrage klappt.

2) An fremde Domains versenden ohne Authentifizierung des SMTP-Servers? Geht sowas wirklich?
nepos
 2007-08-23 16:28
#98568 #98568
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Zu 2.) Wieso, du willst doch zu 99% an jemanden anderen eine Mail schicken, der nicht in deiner Domain ist. Authentifizierung ist da viel eher bei der Absender-Adresse angesagt, sonst kannst du ja beliebigen Spam verschicken.

Ansonsten ja, da fehlen jegliche Abfragen auf Fehler, die Fehlermeldungen, eventuell auch Auszüge aus den Logs des Mail-Servers etc.
belor
 2007-08-23 18:37
#98580 #98580
User since
2007-06-19
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
hallo nepos,
danke für deine antworten.

zu 1.) es kommen überhaupt keine fehlermeldungen.
die datenbank informationen werden korrekt weiter gegeben,
habs mir auch mal testweise aus printen lassen.

zu 2.) ich habe das script noch um folgende zeile:

Code: (dl )
$smtp->auth("username", "password");


ergänzt. allerdings ändert es leider nichts an der fehler situation.
bloonix
 2007-08-23 19:21
#98582 #98582
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Aus der Doku von CPAN:Net::SMTP
Code (perl): (dl )
1
2
3
4
5
    $smtp = Net::SMTP->new('mailhost',
                           Hello => 'my.mail.domain',
                           Timeout => 30,
                           Debug   => 1,
                          );

Debugging sollte eingeschaltet werden um die Kommunikation
zwischen Client-Server mitzubekommen. Das kann sehr hilfreich
sein.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
bloonix
 2007-08-23 19:22
#98583 #98583
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
oops... double post, sry
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
belor
 2007-08-24 22:43
#98631 #98631
User since
2007-06-19
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
vielen dank!

falls jemand mal das problem haben sollte....
es lag an der authentifizierung.

ich verwende jetzt Net::SMTP_auth.
damit lässt sich beispielsweise herausfinden,
was für authentifizierungsmöglichkeiten der smtp server anbietet.

das war auch der fehler bei mir.
jetzt hab ichs richtig.

das script sieht noch genauso aus, bis auf die authentifizierungszeile und das einbinden des oben genannten moduls statt Net::SMTP.

Code: (dl )
  $smtp->auth('LOGIN', 'user', 'password');


(LOGIN ist die authentifizierung, also halt je nach server verschieden)

mit folgendem:

Code: (dl )
 $smtp->auth_types ()


bekommt man ein array mit den authentifizierungsmethoden des smtp servers zurück.
ganz nützlich.


mfg
belor
<< >> 7 Einträge, 1 Seite



View all threads created 2007-08-22 21:41.