无法使用 Perl 中的 Email::MIME 从 google 群组帐户发送电子邮件/抄送不接收电子邮件
Posted
技术标签:
【中文标题】无法使用 Perl 中的 Email::MIME 从 google 群组帐户发送电子邮件/抄送不接收电子邮件【英文标题】:Can't send email from google group account using Email::MIME in Perl / CC'd don't receive email 【发布时间】:2020-11-17 02:35:59 【问题描述】:每当在我的读取和解码 json 数据的 perl 脚本中发现不良内容时,我想从 google 群组帐户发送电子邮件通知。
这是我正在使用的:
my $email = Email::MIME->create(
header_str => [
From => 'test@googlegroup.com',
To => 'me@gmail.com',
Cc => ('other1@gmail.com', 'other2@gmail.com', 'other3@gmail.com'),
Subject => 'YOrg Refresh Failed: Bad File',
'Content-Type' => 'text/html',
],
body => "<p>All,</p><p>An error occurred while processing the data from the latest refresh.</p><p>Please look into this as soon as possible.</p>"
);
sendmail($email);
die $response->status_line;
我首先使用我的个人电子邮件地址作为发件人(发件人)进行了测试,并且电子邮件按预期发送。但是当我使用组帐户地址('test@googlegroup.com')时,电子邮件没有发送出去。这也是一个有效的组帐户。所以我不确定为什么电子邮件不会从该帐户发送。
此外,在我从我的个人电子邮件地址发送的测试实例中,只有“other1@gmail.com”别名收到了电子邮件,其他抄送地址都没有收到。
【问题讨论】:
【参考方案1】:问题的后半部分是您试图将列表分配给哈希值,而不是对匿名数组的引用。这个:
Cc => ('other1@gmail.com', 'other2@gmail.com', 'other3@gmail.com'),
应该是:
Cc => ['other1@gmail.com', 'other2@gmail.com', 'other3@gmail.com'],
既然你给它一个列表,Perl 会像这样解析你的语句:
header_str => [
From => 'test@googlegroup.com',
To => 'me@gmail.com',
Cc => 'other1@gmail.com',
'other2@gmail.com' => 'other3@gmail.com',
Subject => 'YOrg Refresh Failed: Bad File',
'Content-Type' => 'text/html',
],
【讨论】:
以上是关于无法使用 Perl 中的 Email::MIME 从 google 群组帐户发送电子邮件/抄送不接收电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Email::MIME 和 multipart/mixed with subparts 解析电子邮件
在 perl 中使用电子邮件 :: MIME 发送多个文件?