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

用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博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-942995/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-942995/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值