我有以下代码在Perl中发送电子邮件:
#!/usr/bin/perl
use MIME::Lite;
$to = 'toid@domain.com';
$cc = 'ccid@domain.com';
$from = 'fromid@domain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
#$msg->send('smtp', "smtp.gmail.com", AuthUser=>"myid@domain.com", AuthPass=>"mypass" );
#$msg->send('smtp', "smtp.gmail.com", Debug=>0 );
#$msg->send('type',@args);
print "Email Sent Successfully\n";
当我运行它时,我收到以下错误:
SMTP Failed to connect to mail server:
当我使用参数调用$msg->send
时(请参阅上面的注释行),我收到以下错误:
SMTP auth() command not supported on smtp.gmail.com
我该如何解决这个问题?
答案 0 :(得分:2)
有人在几年前为此提出了bug report。维护者的回应是:
这不太可能修复。
MIME :: Lite不支持Net :: SMTP :: TLS,我也不认为自己将来会实现这一点。我强烈建议将MIME :: Lite转移到Email :: Sender和Email :: MIME等工具或其他更受支持的工具。
请注意,您不应该首先使用MIME::Lite
,因为documentation建议不要使用它:
WAIT!
当前的维护者不推荐使用MIME :: Lite。有许多替代方案,例如Email :: MIME或MIME :: Entity和Email :: Sender,您可能应该使用它们。 MIME :: Lite继续产生奇怪的错误报告,并且由于有更好的替代方案,它没有收到大量的重构。请考虑使用其他东西。
答案 1 :(得分:1)
MIME :: Lite是(因为ThisSuitIsNotBlack说明)不推荐使用。
这适用于我,使用首选的Email :: Sender:
use strict;
use warnings;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTPS ();
use Email::Simple ();
use Email::Simple::Creator ();
my $smtpserver = 'server';
my $smtpport = 587;
my $smtpuser = 'username';
my $smtppassword = 'password';
my $transport = Email::Sender::Transport::SMTPS->new({
host => $smtpserver,
port => $smtpport,
ssl => "starttls",
sasl_username => $smtpuser,
sasl_password => $smtppassword,
});
my $email = Email::Simple->create(
header => [
To => 'mymail@gmail.com',
From => 'sender@example.com',
Subject => 'Hi!',
],
body => "This is my message\n",
);
sendmail($email, { transport => $transport });
答案 2 :(得分:0)
可以使用Net :: SMTP 3.05(CPAN的最新版本)修复。它支持SMTPS和STARTTLS [警告:请参阅MIME::Lite 3.030 - NET::SMTP with smtps (port 465)]
# It should work with Net::SMTP 3.05
# MIME::Lite will pass SSL=>1 to Net::SMTP constructor
$msg->send('smtp', "smtp.gmail.com", SSL=>1,
AuthUser=>"myid@domain.com", AuthPass=>"mypass" );
答案 3 :(得分:0)
以上方法在
时有效 1 2 3 4 5 6 7 8
0 3 16 3 2 17 2 3 2
1 3 16 3 2 19 4 3 2
2 3 16 3 2 9 2 3 2
3 3 16 3 2 19 1 3 2
4 3 16 3 2 17 2 3 1
5 3 16 3 2 17 1 17 1
6 3 16 3 2 19 1 17 2
7 3 16 3 2 19 4 3 1
8 3 16 3 2 19 1 3 2
9 3 16 3 2 7 2 17 1
corr = t.corr()
corr
希望这对其他人有帮助。