feddeMedlem sedan dec. 1999142 inlägg
Någon som vet hur man skickar HTML-mail via ett vanligt formmailscript (perl)? Jag får det bara till vanlig text. Hittar inga sidor på nätet om detta heller.
Och bråttom är det som vanligt ;)
------------------
/fedde
[Redigerat av fedde den 14 sep 2001]
JojoxxMedlem sedan juni 20004 306 inlägg
Lägg till raden "Content-type:text/html\n" i mail-headern. perl faq
------------------
/ J
feddeMedlem sedan dec. 1999142 inlägg
Detta har jag redan skrivit för att få den att skapa en tacksida.
Var tänkte du jag skulle sätta in det för själva mailet skull? Bifogar en del av scriptet.
Jag har läst lite om Blat.exe på nätet och de skriver bl a om att man ska lägga till - html eller - mime jag har provat att göra detta på $NT_mail_program men det fungerar inte.
############################################################
# bearbetning av formulär data...
############################################################
print "Content-type: text/html\n\n";
&kollasida;
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;
$FORM{$name} = $value;
}
#############################################################
# OBS ange parametrarna nedan
#############################################################
$fromuser = 'testmail@obblankett.se';
$knownsender = $fromuser;
$touser = 'info@3pixlar.com';
$fromsmtp = 'obblankett.se';
$tosmtp = '3pixlar.com';
$subject = "Test för HTML-mail";
$mail_program = "c:\\Winnt\\System32\\blat.exe";
#############################################################
# Anropa mailrutinen
#############################################################
&send_mail($knownsender, $fromuser, $fromsmtp, $touser, $tosmtp, $subject);
sub send_mail {
local($knownsender, $fromuser, $fromsmtp, $touser, $tosmtp,
$subject) = @_;
my ($NT_mail_program);
# First we need to start the mail program and open
# a PIPE to the program so that anything
# we print to the filehandle, goes to the running
# program.
$ENV{"TMP"} = "C:\\TEMP"; # blat writes a temporary file here
$NT_mail_program = $mail_program;
$NT_mail_program .= " - -i $knownsender -t $touser -q -s \"$subject\"";
open (MAIL, "|$NT_mail_program") ||
&web_error("Could Not Open Mail Program");
############################################################
# Skriver mailmedelandet till mailprogrammet
############################################################
print MAIL "Följande uppgifter har lämnats vid beställningen:\n";
print MAIL "<b>Följande uppgifter har lämnats vid beställningen:\n";
print MAIL "-------------------------\n";
print MAIL "Kuvert\n";
print MAIL "$FORM{'Sort'}\n";
print MAIL "Antal: $FORM{'Antal'}\n";
print MAIL "-------------------------\n\n";
print MAIL "$FORM{'Bolagsnamn'}\n";
print MAIL "$FORM{'Avdelning'}\n" if $FORM{'Avdelning'};
print MAIL "$FORM{'Postadress'} $FORM{'Postnummer'} $FORM{'Ort'}\n";
print MAIL "$FORM{'Webadress'}\n";
print MAIL "\n-------------------------\n";
print MAIL "Meddelande till ob blankett:\n\n";
print MAIL "$FORM{'Meddelande'}\n";
print MAIL "-------------------------\n\n";
close (MAIL);
} #end of send_mail
------------------
/fedde
JojoxxMedlem sedan juni 20004 306 inlägg
Jag har aldrig kört blat, men kan du ändra mime-type på det sättet så borde det gå att ändra på;
$NT_mail_program .= " - -i $knownsender -t $touser -q -s \"$subject\"";
till;
$NT_mail_program .= " -mime text/html -i $knownsender -t $touser -q -s \"$subject\"";
(det första binde-strecket ser inte ut att göra någon nytta, så det har jag plockat bort).
------------------
/ J
feddeMedlem sedan dec. 1999142 inlägg
Det fungerade inte att göra så.
Den skickade inget mail alls då...
(men inget felmeddelande)
Något annat förslag?
------------------
/fedde
JojoxxMedlem sedan juni 20004 306 inlägg
Det du kan göra är att titta i källan på det mail du fått för att se om det i headern finns någon rad som säger "Content-type: någonting". Eftersom du bara kan påverka de rader som blat tillåter, subject, to, reply-to osv, så måste det finnas en fördefinierad växel för det. -mime lät ju bra, men fungerar det inte och dokumentationen inte säger något annat så byt mailtransporter. Egentligen, skall du bara skicka mail utan attachments eller konstigheter är det enklare att skicka mailet direkt från perl. Då kan du ändra header-fälten precis som du vill ha dem. Ett exempel kan se ut så här;
use Net::SMTP;
$mailserver = 'smtp.domain.com';
$sender = 'maildaemon@domain.com';
$recipient = 'you@domain.com';
$subject = 'Funkar bra';
$mailmsg = <<End_of_mail;
From: $sender
To: $recipient
Content-type: text/html; charset=ISO-8859-1
Subject: $subject
<html><body><h3>Hej</h3><p>...på dig</body></html>
End_of_mail
$smtp = Net::SMTP->new($mailserver);
$smtp->mail($sender);
$smtp->to($recipient);
$smtp->data();
$smtp->datasend($mailmsg);
$smtp->dataend();
$smtp->quit();
------------------
/ J
HansenMedlem sedan aug. 2000383 inlägg
Hej,
Jag brukar använda MIME::Lite för att lösa den uppgiften, fungerar väldigt smidigt med inbäddade bilder.
Har dock bara testat med sendmail och smtp.
------------------
Hansen
c.h@ngmedia.com
feddeMedlem sedan dec. 1999142 inlägg
Det verkade inte vara stöd för mer än Blat.exe hos webbhotellet (när det gäller perl) så jag gjorde ett försök via ASP CDONTS och det fick jag att fungera till slut.
Men jag vill ändå tacka er för att ni lade ner tid på mig och mitt problem! :e
Hoppas att jag kan hjälpa er nästa gång istället.
------------------
/fedde