Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SMTP和Perl向我的Gmail帐户发送电子邮件?_Perl_Email_Smtp_Gmail - Fatal编程技术网

如何使用SMTP和Perl向我的Gmail帐户发送电子邮件?

如何使用SMTP和Perl向我的Gmail帐户发送电子邮件?,perl,email,smtp,gmail,Perl,Email,Smtp,Gmail,我不想使用sendmail发送电子邮件,但更愿意使用SMTP。如何使用Perl向我的GMAIL帐户发送电子邮件?例如,CPAN上有多个SMTP模块。另外,sendmail很可能使用SMTP与邮件服务器通信,那么您不想使用它的真正原因是什么呢?如果您不熟悉(全面的Perl归档网络),我建议您将该站点添加为书签。它包含第三方(大部分经过良好测试)库 一个演示如何使用perl发送电子邮件的示例:根据评论,不清楚您是想通过Google的SMTP发送电子邮件,还是只发送一般电子邮件(可能发送到您的gmai

我不想使用sendmail发送电子邮件,但更愿意使用SMTP。如何使用Perl向我的GMAIL帐户发送电子邮件?

例如,CPAN上有多个SMTP模块。另外,sendmail很可能使用SMTP与邮件服务器通信,那么您不想使用它的真正原因是什么呢?

如果您不熟悉(全面的Perl归档网络),我建议您将该站点添加为书签。它包含第三方(大部分经过良好测试)库


一个演示如何使用perl发送电子邮件的示例:

根据评论,不清楚您是想通过Google的SMTP发送电子邮件,还是只发送一般电子邮件(可能发送到您的gmail帐户)。你应该退房,可能的话

或者,如果你真正想问的是如何将电子邮件从一个非Gmail的地方移动到另一个Gmail,我很幸运使用了IMAP和后端。您可以看到一个使用示例。

我碰巧使用了它,它是
Net::SMTP
的包装器,用于简化构建电子邮件对象、文件附件和发送有效负载的过程

如果您不熟悉安装模块,请检查:

在Windows上,使用ActiveState Perl包管理器(在“开始”菜单中)

在Unix上,使用CPAN:
$sudo CPAN Module::Name


在托管Unix帐户上:

我个人建议您使用我的模块 这在谷歌邮件的TLS中运行得非常好

谢谢

use Email::Send;

my $mailer = Email::Send->new( {
    mailer => 'SMTP::TLS',
    mailer_args => [
        Host => 'smtp.gmail.com',
        Port => 587,
        User => 'username@gmail.com',
        Password => 'password',
        Hello => 'fayland.org',
    ]
} );

use Email::Simple::Creator; # or other Email::
my $email = Email::Simple->create(
    header => [
        From    => 'username@gmail.com',
        To      => 'to@mail.com',
        Subject => 'Subject title',
    ],
    body => 'Content.',
);

eval { $mailer->send($email) };
die "Error sending email: $@" if $@;

我一直在使用,而且运气很好。

您可能想了解的另一种可能性是使用CPAN中的模块。这将允许您将电子邮件从您的Gmail帐户发送到任何帐户(例如,发送给您自己)

如果您只是不喜欢sendmail,另一种选择是使用另一个MTA

以下是我使用gmail在我的机器上安装的说明:

如果您收到有关无法验证来自Thawte Premium Server CA的证书的警告,这可能也很有用。 (如林菲兰的回答中所用)被弃用:

电子邮件::发送正在消失。。。嗯,并不是真的要走,但它是 被官方标记为“失宠”

这对我很有用,使用首选的电子邮件::发件人:

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 });

我真的不明白这个问题:你想直接和谷歌的SMTP服务器通话吗?还是你自己的?关于这个问题,gmail有什么特别的吗?Email::Send最近被弃用,取而代之的是Email::SenderOP说:“我不想使用sendmail”