gpt4 book ai didi

windows - Perl:SMTP 无法连接到邮件服务器

转载 作者:可可西里 更新时间:2023-11-01 10:18:29 24 4
gpt4 key购买 nike

我编写了一个简单的 Perl 脚本来使用 MIME::Lite 和 Net::SMTP 模块发送邮件。但它导致了错误,“SMTP 无法连接到邮件服务器:无法立即完成非阻塞套接字操作”

我试过的Perl脚本,

use strict;
use warnings;
use MIME::Lite;
use Net::SMTP;

my $from = 'agnesgrusteven@gmail.com';
my $to = 'agnesgrusteven@gmail.com';
my $host = 'smtp.gmail.com';

my $subject = 'A test message by script ';
my $body = "Please ignore this message as this is test from Perl scripts ";

my $msg = MIME::Lite->new (
From => $from,
To => $to,
Subject => $subject,
Type =>'multipart/mixed'
) or die "Error creating multipart container: $!\n";

$msg->attach (
Type => 'TEXT',
Data => $body
) or die "Error adding the text message part: $!\n";

MIME::Lite->send('smtp', $host, Timeout=>60);
$msg->send;

我得到的实际错误,

G:\>perl SampleEmail.pl
SMTP Failed to connect to mail server: A non-blocking socket operation could not
be completed immediately.
at SampleEmail.pl line 26.

请帮助我具体检查哪些内容才能正确发送邮件。

提前致谢

最佳答案

MIME::Lite/Net::SMTP v3.* - 通过 smtp.gmail.com 发送

Q1:您可以在 smtp.gmail.com telnet smtp (25) 端口吗?您收到 SMTP 问候消息了吗?

telnet smtp.gmail.com 25

A1:否 => 您与 smtp 端口的传出连接很可能被阻止以避免传出垃圾邮件。

Q2:你能在smtp.gmail.com telnet msa(587)端口吗?您收到 SMTP 问候消息了吗?

telnet smtp.gmail.com 587

A1:是 => 通过 msa (587) 或 smtps (465) 发送。 MIME::Lite 可以使用 Net::SMTP 版本 3.*.
连接到 smtps (465) 端口[ 警告:参见MIME::Lite 3.030 - NET::SMTP with smtps (port 465) ]

# use smtps (465) port - it requires Net::SMTP version 3.*
# use debugging (Debug=>1) for initial tests
MIME::Lite->send('smtp', $host, SSL => 1, Timeout => 60,
AuthUser => $user, AuthPass => $pass,
Debug => 1);

关于windows - Perl:SMTP 无法连接到邮件服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35316699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com