您的位置:首页 > 编程语言 > PHP开发

NET::SMTP

2011-06-10 09:09 811 查看
use strict;

use warnings;

use Net::SMTP;

use Authen::SASL;

use MIME::Base64;

use Encode;

my $mailhost = "主机名"; # the smtp host

my $mailfrom = '你的email地址'; # your email address

my $hello = 'localhost';

my $sendName = '这个不知道有啥用'; #the sender name

my $sendPassword ='密码'; #the sender password

my $subject = "邮件标题"; #mail subject

#$subject = Encode::encode('utf8', $subject); #perl对文字的处理默认使用utf-8所以这里不再用utf-8编码

my $smtp; # the connet of mail server

sub new{

my $type = shift;

bless {}, $type;

}

sub sentMail{

$smtp = Net::SMTP->new($mailhost, Hello => $hello, Timeout => 120, Debug => 0);

# anth login, type your user name and password here

$smtp->auth($sendName,$sendPassword);

my($this,$hashCont)=(@_);

my $body = getcontent($hashCont);

my $mailto = $hashCont->{mailto};

# Send the From and Recipient for the mail servers that require it

$smtp->mail($mailfrom);

$smtp->to($mailto);

# Start the mail

$smtp->data();

# Send the header

$smtp->datasend("From: $mailfrom\n");

$smtp->datasend("To: $mailto\n");

$smtp->datasend("Content-Type:text/plain;charset=UTF-8\n"); #这里设置邮件内容的编码,即用户的客户端解码方式

$smtp->datasend("Subject:=?UTF-8?B?".encode_base64($subject, '')."?=\n\n"); #encode_base64是MIME::Base64模块中的函数,$title为UTF-8编码过的.用这个函数保证标题不乱码

$smtp->datasend($body."\n\n"); #$body为UTF-8 编码过的,perl默认已经编成utf8了,这里不用再编一次

# $smtp->datasend("Subject:=?utf-8?B?".$subject."?=\n");

# $smtp->datasend("Subject: $subject\n");

# $smtp->datasend("\n");

# $smtp->datasend($body."\n\n");

# $smtp->datasend(Encode::decode( "utf8", $body)."\n\n");

$smtp->dataend();

$smtp->quit;

}

sub smtpQuit{

$smtp->quit;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 NET SMTP