Ошибка подключения: IO :: Socket :: INET: connect: время ожидания отображается в Perl. - PullRequest
1 голос
/ 17 февраля 2012

Я написал этот скрипт для отправки почты через gmail smtp на мою учетную запись gmail.Это не работает и дает уже упомянутую ошибку?

use Net::SMTP::TLS;  

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

$mailer->mail('cetranger@gmail.com');  

$mailer->to('cetranger@gmail.com');  

$mailer->data;  

$mailer->datasend("Sent from perl!");  

$mailer->dataend;  

$mailer->quit;  

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Попробуйте это:

use strict;
use warnings;

use Email::Simple;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP::TLS;

my $transport = Email::Sender::Transport::SMTP::TLS->new(
    host     => 'smtp.gmail.com',
    port     => 587,
    username => 'cetranger@gmail.com',
    password => 'xxxxxx'
);

my $message = Email::Simple->create(
    header => [
        From           => 'cetranger@gmail.com',
        To             => 'cetranger@gmail.com',
        Subject        => 'Sent from perl!',
    ],
    body => 'Sent from perl!',
);

sendmail( $message, {transport => $transport} );
1 голос
/ 17 февраля 2012

Этот скрипт должен работать на самом деле (я успешно проверил свою учетную запись gmail).

Я подозреваю, что у вас есть межсетевой экран, который не позволяет подключиться к gmail.Не могли бы вы попробовать telnet smtp.gmail.com 587 с вашего хоста.У вас должно быть что-то вроде этого:

host$ telnet smtp.gmail.com 587
Trying 173.194.67.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP da8sm6658151wib.6

Если у вас нет последних 3 строк, это означает, что вы не можете напрямую подключиться к серверу Gmail.Затем проверьте также свои собственные настройки брандмауэра (если есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...