1

我编写了一个 Perl 程序来通过 Gmail 帐户发送电子邮件。

我使用 NET::SMTP、NET::SMTP::SSL 和 Authen::SASL 模块。将 SMTP 端口设置为 465 后,它可以正常工作。

$smtp = Net::SMTP::SSL->new('smtp.gmail.com', Hello => 'localhost', Port => '465', Timeout => 30, Debug => 1);

但是在其中一个客户站点中,运行我的程序的 PC 只有 HTTP 访问 Internet 的权限。这样上面的代码行就不能再工作了。(我认为 SMTP 需要 PC 允许袜子。)我试过 Mail::Webmail::Gmail,但似乎这个模块太旧了,不能再工作了。

我想知道在这种情况下是否可以仅使用 Perl 中的网络访问来发送电子邮件,就像打开网络浏览器登录 Gmail 一样?谢谢!

4

1 回答 1

0

在寻找相关问题的解决方案时偶然发现了这一点。我意识到它很旧,但没有答案,其他人可能会遇到它。此外,这些评论是不必要的粗鲁和无益的,并且对那些评论不可能做出的情况进行评估。将 GMail 用于商业是非常合理的,事实上 Google 提供商业电子邮件服务,任何此类用户都可能在使用这些服务。所以继续寻找可能的解决方案。

您可以设置一个外部代理来侦听端口 80 并将该流量重定向到 Google 的端口 465。

我同意上面关于谷歌屏幕抓取的评论。如果第三方服务适用于您的用例,我也同意使用第三方服务的可能性。

关于这个问题,如果端口 465 被阻止发送,那么您将需要使用允许发送的不同端口。由于 Google 仅在 smtp.gmail.com 上侦听 25、465 和 587,因此您需要使用代理,该代理允许您将在允许端口上发出的请求重定向到 Google 也在侦听的端口之一。

于 2014-06-25T21:45:22.130 回答