ITPub博客

首页 > 应用开发 > IT综合 > 用sendmail发送HTML格式的邮件(转)

用sendmail发送HTML格式的邮件(转)

原创 IT综合 作者:post0 时间:2007-08-10 22:12:27 0 删除 编辑
用sendmail发送HTML格式的邮件(转)[@more@]

先将来自HTML页面的数据解码,再调用unix系统sendmail命令即可。

例如下:#!/usr/local/bin/perl

#

&readparse;

print "Content-type: text/htmlnn";

#

#********* BEGIN BODY********************

#******** END BODY************************

#

# EACH VALUE IN THE HTML FORM WILL BE CONTAINED IN

# THE THE @VALUE ARRAY.

sub readparse {

read(STDIN,$user_string,$ENV{'CONTENT_LENGTH'});

if (length($ENV{'QUERY_STRING'})>0) {$user_string=$ENV{'QUERY_STRING'}

};

$user_string =~ s/+/ /g;

@name_value_pairs = split(/&/,$user_string);

foreach $name_value_pair (@name_value_pairs) {

($keyword,$value) = split(/=/,$name_value_pair);

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/ge;

push(@value, "$value");

$user_data{$keyword} = $value;

if ($value=~/<!--#exec/) {

print "Content-type: text/htmlnnNo SSI permitted";

exit;

};

};

};

#E-MAIL SUBROUTINE

#ADD "&email(to,from,subject,text)" TO YOUR SCRIPT

#REMEMBER TO BACKSLASH THE @ WHEN YOU ARE NOT USING IT IN AN ARRAY

#FOR EXAMPLE:

# $to='robyoung@mediaone.net';

# $from='foo@company.com';

# $subject='Thank you for your inquiry';

# $text='Dear readernnThank you for your recent inquiry.';

# &email($to,$from,$subject,$text);

sub email {

local($to,$from,$sub,$letter) = @_;

$to=~s/@/@/;

$from=~s/@/@/;

open(MAIL, "|/usr/lib/sendmail -t") || die

"Content-type: text/textnnCan't open /usr/lib/sendmail!";

print MAIL "To: $ton";

print MAIL "From: $fromn";

print MAIL "Subject: $subn";

print MAIL "$lettern";

return close(MAIL);

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8225414/viewspace-942995/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 用perl作的ftp(转)
请登录后发表评论 登录
全部评论
  • 博文量
    2018
  • 访问量
    8226243