如何从 Perl 读取 Gmail 帐户中的邮件?

2024-01-07

我已经使用了该模块邮件::网页邮件::Gmail http://search.cpan.org/dist/Mail-Webmail-Gmail阅读我的 Gmail 帐户中的新邮件。

为此,我编写了以下代码:

use strict;
use warnings;
use Data::Dumper;

use Mail::Webmail::Gmail;

my $gmail = Mail::Webmail::Gmail->new(
    username => 'username', password => 'password',
);


my $messages = $gmail->get_messages( label => $Mail::Webmail::Gmail::FOLDERS{ 'INBOX' } );


foreach ( @{ $messages } ) {
    if ( $_->{ 'new' } ) {
        print "Subject: " . $_->{ 'subject' } . " / Blurb: " . $_->{ 'blurb' } . "\n";
    }
}

但它没有打印任何东西。

任何人都可以帮助我或为此建议任何其他模块吗?

提前致谢。


这几乎是逐字逐句摘自 Net::IMAP::Simple POD:

use strict;
use warnings;

# required modules
use Net::IMAP::Simple;
use Email::Simple;
use IO::Socket::SSL;

# fill in your details here
my $username = '[email protected] /cdn-cgi/l/email-protection';
my $password = 'secret';
my $mailhost = 'pop.gmail.com';

# Connect
my $imap = Net::IMAP::Simple->new(
    $mailhost,
    port    => 993,
    use_ssl => 1,
) || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";

# Log in
if ( !$imap->login( $username, $password ) ) {
    print STDERR "Login failed: " . $imap->errstr . "\n";
    exit(64);
}
# Look in the INBOX
my $nm = $imap->select('INBOX');

# How many messages are there?
my ($unseen, $recent, $num_messages) = $imap->status();
print "unseen: $unseen, recent: $recent, total: $num_messages\n\n";


## Iterate through unseen messages
for ( my $i = 1 ; $i <= $nm ; $i++ ) {
    if ( $imap->seen($i) ) {
        next;
    }
    else {
    my $es = Email::Simple->new( join '', @{ $imap->top($i) } );

    printf( "[%03d] %s\n\t%s\n", $i, $es->header('From'), $es->header('Subject') );
    }
}


# Disconnect
$imap->quit;

exit;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Perl 读取 Gmail 帐户中的邮件? 的相关文章

随机推荐

  • 我需要在 vba 中解释 activecell.offset

    我在理解一些 VBA 代码时遇到一些困难 我没有问题 activecell offset 1 1 select 但是 我有问题 activecell offset 1 1 range A1 select AND ActiveCell Off
  • TranslateAccelerator 和禁用的菜单项

    在我的应用程序中 我根据上下文启用 禁用菜单项 如果文本区域具有焦点 我会禁用与导航键冲突的加速器 例如 Ctrl 左 右 根据微软的文档 http msdn microsoft com en us library windows desk
  • 锚标记转到网页的错误部分

    这是问题所在的实际视频记录 我不想以任何方式做广告 https www youtube com watch v 7b38cQ0VGWI https www youtube com watch v 7b38cQ0VGWI 所以我创建一个网站只
  • 如何提高C++中merkle根计算的速度?

    我正在尝试尽可能优化默克尔根计算 到目前为止 我用 Python 实现了它 结果是这个问题 https stackoverflow com questions 67355203 how to improve the speed of mer
  • 如何防止按钮提交表单

    在下一页中 使用 Firefox 删除按钮会提交表单 但添加按钮不会提交表单 我该如何预防remove提交表单的按钮 function addItem var v form hidden last attr name var n input
  • 托管WPF插件跨进程问题

    我使用类似的方法http www codeproject com Articles 516431 Baktun Shell Hosting WPF Child Windows in Another http www codeproject
  • 检测到 HTML 文本框的拖放?

    我的网页上有一个正常的搜索框 它充满了文字 Search this website 当您单击框中输入搜索查询时 此文本将被删除 onfocus if this value Search this website this value 但是
  • 如何在Mac终端中使用SoX从文本文件中修剪特定时间的音频文件?

    我有一个文本文件 如下所示文本文件 https i stack imgur com iDm8k png 我想使用 sox 根据文本文件中的时间修剪音频文件 这样我就可以有从 0 0 到 6 16 6 16 到 13 44 13 44 到 1
  • 使用 selenium Java 或 cypress 中的 e2e 进行 Angular/SPA 应用程序的代码覆盖率

    我们想要测量 Angular 8 应用程序代码覆盖率 我们有一个用 selenium java 编写的 e2e 测试用例 它加载部署在浏览器中另一台机器上的 Angular 应用程序 并运行一些 e2e 测试用例集 问题是我如何测量 Ang
  • 字节序理论和概念

    这不是任何编程语言特有的问题 假设您在大端机器上编写了一些文件 并且您知道这一点 如果两个单字节值被连续写入 你怎么知道 Big endian 颠倒了 16 32 和 64 位值的顺序 那么您如何知道需要将其作为单个字节读取呢 例如 您写入
  • pygame中显示网格时角色移动缓慢

    我正在 pygame 中制作贪吃蛇游戏 我注意到了一件奇怪的事情 每当我显示网格时 我的角色都会缓慢运行 这是我的程序的主要功能 我刚刚开始学习pygame def main global SCREEN CLOCK pygame init
  • React 同一组件的多个实例获得相同的状态

    我有一个 React 组件 我正在创建它的 2 个副本 然而 当其中 1 个状态更新时 第 2 个状态也会更新 我不确定是什么原因造成的 这是我的代码 这是我使用两个组件的地方 this state selectedTab 0
  • 替换所有高于阈值的 RGB 值

    我有一个充满 RGB 值的 numpy 3d 数组 例如 形状 高度 宽度 3 matrix np array 0 0 5 0 6 0 9 1 2 0 如果任何值高于阈值 我必须替换 RGB 值 例如阈值 0 8 替换 2 2 2 然后 m
  • 使用 Database First 方法选择性禁用延迟加载

    我对禁用整个上下文的延迟加载不感兴趣 我只想选择性地禁用一些关键导航属性的延迟加载 随着代码优先方法 我了解如何有选择地禁用延迟加载 public virtual Person Requestor get set lazy loading
  • 隐藏 div 上的 Google Map API V3(jquery-ui 选项卡)

    我知道这个问题很古老 但我似乎找不到明确的说明 问题的要点是 当 Google 地图加载到隐藏 显示 无 div 上时 它不会完全加载 部分显示 例如jQuery 选项卡等 API V3 不再接受 checkResize left 1000
  • Elasticsearch 索引最大结果窗口配置异常

    当我将此配置添加到 etc elasticsearch elasticsearch yml在ubuntu虚拟机中 index max result window 1000000 执行此配置后 当我重新启动 Elasticsearch 时 会
  • 在 Common Lisp 中使用外部库或包的示例

    在 Common Lisp 中 quicklisp 是一种流行的库管理工具 我将使用该工具 并尝试使用 CL WHO 我使用 SBCL 1 0 57 实现 我将在下面回答我自己的问题 作为初学者 并不清楚 ASDF 和 Quicklisp
  • 调试和发布模式之间的异常堆栈跟踪差异

    下面的代码在调试和发布模式下生成不同的异常堆栈跟踪 static class ET public static void E1 throw new Exception E1 public static void E2 try E1 catc
  • Javadoc 和 RuntimeException

    我很好奇我是否应该添加throws ExceptionClass或不在方法签名之后 ExceptionClass 扩展 RuntimeException 例如 public void foo throws ExceptionClass th
  • 如何从 Perl 读取 Gmail 帐户中的邮件?

    我已经使用了该模块邮件 网页邮件 Gmail http search cpan org dist Mail Webmail Gmail阅读我的 Gmail 帐户中的新邮件 为此 我编写了以下代码 use strict use warning