- 论坛徽章:
- 0
|
我只是想做个简单的实验,所以申了一个Gmail帐号,开启了相关的选项后,用Windows Live Mail客户端测试可以发送,然后我就开始尝试用Perl写一个程序用来发送邮件,但是总也成功不了,尤其是Mail::Sender,它除了把我的Terminal挂起无限长时间之外什么也不做。
请会的人帮个忙看一下我的代码是不是有问题,下面是涉及的参数:
SMTP加密:SSL
SMTP认证:Clear-type-text,需要账户和密码
SMTP端口:465
就是这么简单的几个参数,用Mail::Sender不行,它似乎不支持SSL,至少我在其cpan文档上连SSL这仨字母都找不到,用Net::SMTP也不行,它简陋的文档里不仅没有SSL,连Port都找不到。后来我找到了一个说是语法和Net::SMTP一样,但是是使用SSL的模块叫Net::SMTP::SSL,于是用它试了试,也不行,因为认证参数“Clear-type-text”对应的在该模块中的指定方式和该模块对此参数的称呼我找不到,我想这应该是主要问题,有谁知道如何指定吗?
下面是我写的程序:- #!/usr/bin/perl
- use MIME::Parser;
- use Net::SMTP::SSL;
- @data = ("Useless line 1", "Useless line 2");
- my $top = build MIME::Entity (
- 'X-Mailer' => 'test_sender',
- -From => 'sender@gmail.com',
- -To => 'account@msn.com',
- -Subject => 'I can never see this crap',
- Data => \@data);
- my $smtp = Net::SMTP::SSL->new('mail.google.com',Port => 465);
- $smtp->mail('sender@gmail.com');
- $smtp->to('account@msn.com');
- $smtp->auth('sender@gmail.com','MyPassword');
- $smtp->data;
- $smtp->datasend($top->stringify);
- $smtp->dataend;
- $smtp->quit;
复制代码 |
|