Schrift
[thread]2981[/thread]

mail adressen automatisch zuordnen



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
coax
 2004-04-29 16:04
#28268 #28268
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=cc,29.04.2004, 13:51]$mail_destination = $mail_address{$FORM{'Destination'}};[/quote]
$FORM{'Destination'} ist an dieser Stelle noch nicht bekannt da du das Formular erst ein paar Zeilen weiter unten ausliest.
Warum liest du die Formulardaten nicht mit CGI aus, wenn du es doch eh schon einbindest ?

Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
renee
 2004-04-29 23:42
#28269 #28269
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
dann ersetz es mal damit:

Code: (dl )
1
2
3
foreach my $key(keys(%FORM)){
print MAIL $key,":\t",$FORM{$key},"\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
cc
 2004-04-29 23:25
#28270 #28270
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hi renee

danke, aber habe aber probleme mit deinem script.
ein paar sachen habe korriegiert aber:
Code: (dl )
1
2
3
while(my ($key,$value) = each %FORM){
print MAIL "$key\: $value\n";
}

funktioniert noch NICHT und bekomme fehlermeldungen.


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
29
30
31
32
33
34
35
36
#!/usr/bin/perl -w

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);


my $mailprog = '/usr/sbin/sendmail -t';

my $email = 'zzz@hotmail.com';

my %mail_address = ("France" => 'xxx@hotmail.com',
"Germany" => 'yyy@hotmail.com');

my $cgi = CGI-new;
print $cgi-header;
my %FORM = $cgi-Vars;

my $mail_destination = $mail_address{$FORM{'Destination'}};

$email = $FORM{'email'};
my $Destination = $FORM{'Destination'};
my $yourname = $FORM{'yourname'};
my $message = $FORM{'message'};


open (MAIL, "| $mailprog") || print "Can't open $mailprog!\n";
print (MAIL "From: $email\n");
print (MAIL "To: $mail_destination\n\n");

while (($key,$value) = each %FORM){
print MAIL "$key\: $value\n";

}

close MAIL;
\n\n

<!--EDIT|cc|1083281093-->
cc
 2004-04-30 03:36
#28271 #28271
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
herzlichen dank !

jetzt funktioniert:
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
29
30
31
32
33
34
#!/usr/bin/perl -w

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);


my $mailprog = '/usr/sbin/sendmail -t';

my $email = 'zzz@hotmail.com';

my %mail_address = ("France" => 'xxx@hotmail.com',
"Germany" => 'yyy@hotmail.com');

my $cgi = CGI->new();
print $cgi->header();
my %FORM = $cgi->Vars();

my $mail_destination = $mail_address{$FORM{'Destination'}};

$email = $FORM{'email'};
my $Destination = $FORM{'Destination'};
my $yourname = $FORM{'yourname'};
my $message = $FORM{'message'};

open (MAIL, "| $mailprog") || print "Can't open $mailprog!\n";
print (MAIL "From: $email\n");
print (MAIL "To: $mail_destination\n\n");

foreach my $key(keys(%FORM)){
print MAIL $key,":\t",$FORM{$key},"\n";
}

close MAIL;
renee
 2004-04-30 13:30
#28272 #28272
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
use Mail::RFC822::Address qw(valid validlist);
[...]
$email = $FORM{'email'};
[...]
if (valid($email)) {
print "That's a valid address\n";
}
if(valid($mail_destination)){
print "Destination address is valid!";
}


Steht aber auch alles in der Doku, die hinter dem Link von Strat steckt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
cc
 2004-04-30 14:08
#28273 #28273
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hi renee

herzlichen dank !

gruss
cc
cc
 2004-04-29 15:51
#28274 #28274
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hallo

habe eine HTML form mit pull-down-menu gemacht.
jedem land ist eine andere mail adresse zugeordnet.
wenn man in pull-down-menu ein land auswählt sollte eine mail an die entsprechende adresse geschickt werden.
die scheint aber in meinem fall nicht zu klappen:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#003399" link="#0000FF" vlink="#800000" alink="#FF0033">

<form action="/cgi-bin/mail.pl" method="POST">

<center>
<table border="0" cellspacing="2" cellpadding="2" align="center" width="500">
<tr>
<td valign="middle" align="right"><b>
<font face="ARIAL CE, ARIAL, HELVETICA , GENEVA" size="2" color="#008080">
Ihre E-mail:</font></b></td>
<td valign="middle"><input type="Text" name="email" size="30"></td>
</tr>

<tr>
<td valign="middle" align="right"><b>
<font face="ARIAL CE, ARIAL, HELVETICA , GENEVA" size="2" color="#008080">
Destination:</font></b></td>
<td valign="middle"><select name="Destination" class="Auswahl">
<option></option>
<option>France</option>
<option>Germany</option>
</select></td>
</tr>

<tr>
<td valign="middle" align="right"><b>
<font face="ARIAL CE, ARIAL, HELVETICA , GENEVA" size="2" color="#008080">
Ihr Name:</font></b></td>
<td valign="middle"><input type="Text" name="yourname" size="30"></td>
</tr>

<tr>
<td valign="top" align="right"><b>
<font face="ARIAL CE, ARIAL, HELVETICA , GENEVA" size="2" color="#008080">
Ihre Nachricht:</font></b></td>
<td valign="top"><textarea name="message" cols="28" rows="6"></textarea></td>
</tr>

<tr>
<td colspan="2" align="center">
<pre>
<input type="Submit" value="Senden"> <input type="reset" value="Clear">
</pre>
</td>
</tr>
</table>
</form>
</body>
</html>

und dazu ein perl geschrieben:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl -w

use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);

$mailprog = '/usr/sbin/sendmail -t';

$email = 'zzz@hotmail.com';

%mail_address = ("France" => 'xxx@hotmail.com',
"Germany" => 'yyy@hotmail.com');

$mail_destination = $mail_address{$FORM{'Destination'}};

print "Content-type:text/html\n\n";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/~!/ ~!/g;
$Form[$i] = $name;
$i = $i + 1;
$Form[$i] = $value;
$i = $i + 1;
$FORM{$name} = $value;
}

$email = $FORM{'email'};
$Destination = $FORM{'Destination'};
$yourname = $FORM{'yourname'};
$message = $FORM{'message'};

open (MAIL, "|$mailprog") || "Can't open $mailprog!\n";
print (MAIL "From: $email\n");
print (MAIL "To: $mail_destination\n");

for ($i=0; $i<=$#Form; $i=$i+2)
{
print MAIL "$Form[$i]\: $Form[$i+1]\n";
}

close (MAIL);


weiss jemand vielleicht wo der hund begraben liegt ?
renee
 2004-04-29 16:06
#28275 #28275
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst nach den Header-Informationen zwei Zeilenumbrüche machen...

Dann empfehle ich Dir noch das CGI-Modul. Damit würde es ein wenig ainfacher werden:
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
29
30
31
32
33
34
35
#!/usr/bin/perl -w

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $mailprog = '/usr/sbin/sendmail -t';

my $email = 'zzz@hotmail.com';

my %mail_address = ("France" => 'xxx@hotmail.com',
                           "Germany" => 'yyy@hotmail.com');

my $cgi = CGI->new();
print $cgi->header();
my %FORM = $cgi->Vars();

my $mail_destination = $mail_address{$FORM{'Destination'}};



$email = $FORM{'email'};
my $Destination = $FORM{'Destination'};
my $yourname = $FORM{'yourname'};
my $message = $FORM{'message'};

open (MAIL, "| $mailprog") || print "Can't open $mailprog!\n";
print (MAIL "From: $email\n");
print (MAIL "To: $mail_destination\n\n");

 while(my ($key,$value) = each %FORM){
   print MAIL "$key\: $value\n";
 }

close (MAIL);
\n\n

<!--EDIT|renee|1083240409-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
format_c
 2004-04-29 23:28
#28276 #28276
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Fehlermeldungen würden die Lösung deines problems sicher torpedieren. Also wenn du sie hier mal posten könntest.

Gruß Alex
format_c
 2004-04-29 23:53
#28277 #28277
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=cc,29.04.2004, 21:25]...
Code: (dl )
1
2
3
4
5
6
7
...
while my $key,$value = each %FORM {
print MAIL "$key\< $value\<n";

}

close MAIL;
[/quote]
Wenn du while in BLOCK-Schreibweise verwendest brauchst du für die Bedingung Klammern
while (my ($key,$value) = each %FORM) {
print MAIL "$key \< $value\<n"; # sollte das nicht \n lauten???
} # while


Gruß Alex\n\n

<!--EDIT|format_c|1083268417-->
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-04-29 16:04.