Avatar billede Slettet bruger
06. september 2002 - 23:53 Der er 6 kommentarer og
1 løsning

Ret simpelt mail system...

Hey

Kan jeg få en ekspert til at lave et simpelt mail system til mig?

Det skal bare være sådan at selve scriptet henter nogle querystrings som den så sender videre i mailen, fx:

sendit.pl?til=mig@opasia.dk&fra=ham@opasia.dk&emne=test&tekst=dette%20er%20en%20test

til = emailen på personen som mailen skal sendes til
fra = afsenderen
emne = emne/overskrift
tekst = selve teksten i mailen

Det skal helst laves så det kan køre med "sendmail" komponenten...

Jeg vil give 150 point til den første som laver dette simple script...

På forhånd tak :-)
Avatar billede limemedia Nybegynder
07. september 2002 - 04:55 #1
Jeg er en smule rusten i Perl og har ikke noget installeret til at teste, men prøv :

#!/usr/bin/perl
use CGI;

my $query = new CGI;
my $sendmail = "/usr/sbin/sendmail -t";
my $reply_to = "Reply-to: ".$query->param('fra');
my $subject = "Subject: ".$query->param('emne');
my $content = $query->param('tekst');
my $to = $query->param('to');

open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
print SENDMAIL $reply_to;
print SENDMAIL $subject;
print SENDMAIL $to;
print SENDMAIL "Content-type: text/plain\n\n";
print SENDMAIL $content;
close(SENDMAIL);

print $query->header;
print "Done.";


/ Lars
www.ljweb.com
Avatar billede Slettet bruger
07. september 2002 - 12:17 #2
Hey...

Jeg skal lige indskyde at jeg er ret ny til det her CGI/PERl... Men jeg har ændret lidt i scriptet... Og nu ser der sådan her ud:

#!/usr/bin/perl
use CGI;

$text = "Dette er en test";

my $query = new CGI;
my $sendmail = "/usr/sbin/sendmail -t";
my $reply_to = "Reply-to: ".$query->param('fra');
my $subject = "Subject: Mail fra ".$query->param('fra');
my $content = $text;
my $to = $query->param('til');

open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
print SENDMAIL $reply_to;
print SENDMAIL $subject;
print SENDMAIL $to;
print SENDMAIL "Content-type: text/plain\n\n";
print SENDMAIL $content;
close(SENDMAIL);

print $query->header;
print "Done.";

Men det vil ikke rigtig virke... På min ENAVN server kommer der bare denne fejl:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Og på min NT server kommer der denne fejl:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:


Cannot open /usr/sbin/sendmail -t: Bad file descriptor at c:\inetpub\wwwroot\root\system\admin\sendit.pl line 13.

Jeg har godt nok ikke installeret SendMail på min NT server, men jeg håber du/i lige kan hjæple mig... Mange tak :-D
Avatar billede limemedia Nybegynder
07. september 2002 - 12:33 #3
på NT vil det ikke virke... jeg ser om jeg kan på perl til at virke på min BSD senere idag - ingen garanti
Avatar billede Slettet bruger
07. september 2002 - 12:42 #4
Okay, mange tak... Forresten, fed hjemmeside du har :-) Flot design...
Avatar billede limemedia Nybegynder
07. september 2002 - 12:52 #5
;) thx
Avatar billede Slettet bruger
07. september 2002 - 15:35 #6
Jeg har fået det til at virke nu... Mange tak :-D
Avatar billede limemedia Nybegynder
07. september 2002 - 15:36 #7
fedt :) og tak for point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester