我想设置一个基本的电子邮件发件人。 这是为了验证用户在我网站上的电子邮件并给他们一个令牌以供单击。 服务器未设置用于电子邮件。 它是一个普通的ubuntu框,我真的不想运行邮件服务器,部分原因是我不想让另一个开放端口担心。 我也希望编程简单,避免使用垃圾邮件过滤器。

首先,我尝试了Gmail。

use Net::SMTP::TLS;
my $mailer = new Net::SMTP::TLS(  'smtp.gmail.com',
                  Hello   => 'smtp.gmail.com',
                  Port    => 587,
                  User    => $me2,
                  Password=> $pw);

但我收到有关“ Net :: SMTP :: TLS for Gmail =>无效的SSL_version”的投诉。

然后我尝试了Email :: Send :: Gmail。

my $email_address = $me;

($me =~ /^[\w\-_\.]+\@[\w\-_\.]+$/) or die "$email_address is invalid";

use Email::Send;
use Email::Send::Gmail;
use Email::Simple::Creator;

my $email = Email::Simple->create(
                  header => [
                         From    => $me,
                         To      => $me,
                         Subject => 'Testing',
                        ],
                  body => 'Testing email sending with perl.',
                 );

my $sender = Email::Send->new(
                  {   mailer      => 'Gmail',
                  mailer_args => [
                          username => $me2,
                          password => $pw,
                         ]
                  }
                 );
eval { $sender->send($email) };
die "Error sending email: $@" if $@;

这个抱怨抱怨不推荐使用Return :: Value。 然后,它失败了--可能是因为我的gmail帐户具有两因素身份验证。 这对于我想要的来说变得太复杂了。

对于这个简单的任务,推荐的最简单方法是什么?

===============>>#1 票数:1

不幸的是,您选择的两个模块都无法正常工作,您应该使用Net :: SMTP :: TLS :: ButMaintained而不是Net :: SMTP :: TLS和Email :: Send :: SMTP :: Gmail代替Email :: Send :: Gmail中。 您选择的模块是旧的且未维护,并且已知已损坏。

有时通过模块的CPAN页面检查可用的错误报告会有所帮助。

===============>>#2 票数:1

Email :: Send现在已弃用。 使用首选的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 });

  ask by ivo Welch translate from so

未解决问题?本站智能推荐:

1回复

Perl中Email :: Sender的电子邮件传递失败

我正在用Perl编写程序,将电子邮件发送给收件人列表。 完成此操作后,我想打印所有收件人的列表,以及是否收到电子邮件,例如:-email@email.com是-email2@email.com错误,依此类推。 我在下面编写了代码,并且可以正常工作,如果传递失败,则将电子邮件和电子邮件发送
2回复

Perl重定向电子邮件中脚本的STDOUT

我有一个perl脚本,可以完成一些工作。 一旦脚本完成其任务以及日志(包括脚本执行的所有操作),如何获得电子邮件? 我打算从bash脚本中调用perl脚本,然后在bash脚本中也有通过电子邮件发送日志的代码。 但是我想知道还有其他更好的方法,我只能使用单个脚本(perl)来实现,而
2回复

Perl中的电子邮件主题MIME编码。

我试图在Perl 5.8.5下的主题行中发送包含非ASCII字符的电子邮件。 我的简单示例使用了单词“Änderungen”(德语为umlaut),但未正确转换为“Ä”,主题行始终显示为“Ã?nderungen”。 $ subject_encoded的内容打印为=?UTF-8?Q?=C
2回复

如何使用perl更改电子邮件中的字体

我想问一下如何使用Perl脚本在电子邮件中更改字体字体(Calibri到Courier New)? 我试图将包含表格格式的file.txt发送到电子邮件。 但是,表格没有正确安排在电子邮件内容中,但file.txt安排得很好。 我的电子邮件结果: 电子邮件的预期输出:
1回复

如何更改我的电子邮件格式perl电子邮件

我有这个perl emailer脚本。 该脚本将向message.txt中的电子邮件发送到list.txt中的所有电子邮件。 在message.txt中,这是一个html代码。 这个脚本可以正常工作bt我的问题是我想发送这样的消息:您好,您唯一的链接是: http ://www.myco
1回复

Perl用电子邮件发送Perl电子邮件,例如Mail :: VRFY

我正在尝试验证几封电子邮件。 问题是,对于http://verify-email.org/和Mail :: VRFY,我得到了不同的结果,其中1st更接近现实。 是的,我知道检查现有用户是不可靠的,但仍然如此。 我收到的是 或者,如果我尝试使用Mail :: CheckUs
2回复

如何在Perl中从正文电子邮件中提取href?

我正在尝试提取一些URL,它可以是正文电子邮件中的多个URL。 我正在尝试解析URL,与此: 在$ text上,我有下一个文本: 程序的输出为我提供了1 ...。 任何人都可以帮忙吗? 感谢您的建议。
4回复

用Perl发送电子邮件给地址中带有撇号的人

我目前正在尝试在Perl中给有撇号并且无法弄清楚如何发送的用户写一封电子邮件。 这是该行的样子: 这是我用来发送电子邮件的行: 这是o'connell@website.com的示例电子邮件。 由于撇号,它将不会发送它。 我尝试了以下方法,但没有用。 我正在使用mailx发
1回复

使用Perl无缝转发EML中的大量电子邮件

我的计算机中有大量以EML格式存储的电子邮件,必须转发给其他人。 我将它们交给了包含所有EML文件的ZIP文件,以为它们很容易打开:毕竟,您只需双击它们,Microsoft Outlook或Apple Mail就会自动打开它们。 。 ...除了对方现在说他们没有Outlook外,对方要求
1回复

使用perl将电子邮件与原始电子邮件分开

当人们互相发送电子邮件时,通常在回复发件人时都包含原始电子邮件,每次都向该电子邮件中添加更多信息。 每个电子邮件客户端似乎都有不同的方式将原始电子邮件添加到回复中。 我需要解析到达我们的邮件服务器的电子邮件,并尝试提取消息的新部分,我想知道是否有一种明智的方法来剥离此附加(或前置)信息(