帐户发送电子邮件时

帐户发送电子邮件时

本文介绍了为什么我会收到“SMTP 无法连接到邮件服务器:"当我尝试使用 MIME::Lite 向 Gmail 帐户发送电子邮件时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码在 Perl 中发送电子邮件:

I have following code to send an email in Perl:

#!/usr/bin/perl

use MIME::Lite;

$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';

$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=>"[email protected]", AuthPass=>"mypass" );
#$msg->send('smtp', "smtp.gmail.com",  Debug=>0 );
#$msg->send('type',@args);
print "Email Sent Successfully
";

当我运行它时,我收到以下错误:

When I run it I get the following error:

SMTP Failed to connect to mail server:

当我使用参数调用 $msg->send 时(请参阅上面的注释行),我收到以下错误:

When I call $msg->send with arguments (see the commented lines above) I get the following error:

SMTP auth() command not supported on smtp.gmail.com

我该如何解决这个问题?

How can I fix this?

推荐答案

不推荐使用 MIME::Lite(如 ThisSuitIsNotBlack 所述).

MIME::Lite is (as ThisSuitIsNotBlack notes) deprecated.

这对我有用,使用首选的 Email::Sender:

This works for me, using the preferred 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      => '[email protected]',
    From    => '[email protected]',
    Subject => 'Hi!',
  ],
  body => "This is my message
",
);

sendmail($email, { transport => $transport });

这篇关于为什么我会收到“SMTP 无法连接到邮件服务器:"当我尝试使用 MIME::Lite 向 Gmail 帐户发送电子邮件时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 00:33