2017-08-09 36 views
0

Im Perlプログラミングにはかなり新しいです。私はMIMEを使用して基本的なSMTPの助けが必要::ライト、私はすでにライブラリをダウンロードして、フォルダに入れます。Perl電子メール機能Mime :: Lite

MIME::LITE::SMTP>>> MIME::LITE::SMTP 
MIME::LITE::SMTP>>> NET::SMTP(3.10) 
MIME::LITE::SMTP>>> NET::CMD(3.10) 
MIME::LITE::SMTP>>> EXPORTER(5.72) 
MIME::LITE::SMTP>>> IO::SOCKET::IP(0.39) 
MIME::LITE::SMTP>>> IO::SOCKET(1.38) 
MIME::LITE::SMTP>>> IO::HANDLE(1.36) 
MIME::LITE::SMTP>>> NET::CMD::GETLINE(): UNEXPECTED EOF ON COMMAND CHANNEL: AT C:/STRAWBERRY/PERL/LIBE/MIME/LITE.PM LINE 2622 AT MAIN.PL LINE 23 
SMTP FAILED TO CONNECT TO MAIL SERVER: BAD FILE DESCRIPTOR AT LINE 23 

が、私はここで何かをしないのです: は、ここで私はのエラーを取得しています

#!/usr/bin/perl 

use MIME::Lite; 
use Net::SMTP; 

$to = '[email protected]'; 
$cc = '[email protected]'; 
$from = '[email protected]'; 
$pass = "my password here"; 
$subject = 'Test Email'; 
$message = 'This is test email sent by Perl Script'; 

$msg = MIME::Lite->new(
       From  => $from, 
       To  => $to, 
       Cc  => $cc, 
       Subject => $subject, 
       Data  => $message 
       ); 

# MIME::Lite->send('smtp', "smtp.gmail.com"); 
MIME::Lite->send('smtp', "smtp.gmail.com", Timeout=>60,Auth=>'LOGIN',AuthUser=>$from,AuthPass=>$pass,Port => 465, Debug => 1); 
$msg->send; 
print "Email Sent Successfully\n"; 

私のコードですか?私はチュートリアルを見て、彼らのために働いています。

+0

https://stackoverflow.com/questions/27635906/why-do-i-get-smtp-failed-to-connect-to-mail-server-when-i-try-to-send- an-emai –

+0

[現在のメンテナでさえ]モジュール(https://metacpan.org/pod/MIME::Lite#WAIT!)が使用することをアドバイスしている理由は、わかりません。 –

+0

@DaveCrossおそらくそれを知らない?彼らは時代遅れのチュートリアルから作業しているようです。 – zdim

答えて

1

皆様のご助言ありがとうございます。ですから、Mime :: liteがそれほど良くないので、私はNet :: SMTPへのアプローチを変更しました。私のコードは、将来の参照のために以下にあります。

私はGoogleで動作させることができませんでしたが、私たちの独自のsmtpサーバは、コードのために正常に動作します。

#!perl 
use warnings; 
use strict; 
use Net::SMTP; 

my $smtpserver = 'mail server'; 
my $smtpport = 'port' ; 
my $smtpuser = '[email protected]'; 
my $smtppassword = 'my password'; 


my $smtp = Net::SMTP->new($smtpserver, Port=>$smtpport, Timeout => 60, Debug => 1); 
die "Could not connect to server!\n" unless $smtp; 

$smtp->auth($smtpuser, $smtppassword); 
$smtp->mail('[email protected]'); 
$smtp->to('[email protected]'); 

$smtp->data(); 
$smtp->datasend("To: receiver name <receiver\@sample.com>\n"); 
$smtp->datasend("From: sender name <sender\@sample.com>\n"); 
$smtp->datasend("subject: THIS IS A SUBJECT\n"); 
$smtp->datasend("\n"); 
$smtp->datasend("A simple test message\n"); 

$smtp->quit; 
+1

なぜ私はあなたが「MIME :: Lite」に到達したのか不思議に思っていました。だから私はコメントを控えて - 私はこれを使用し、問題はなかった。 – zdim

+0

私はPerlには本当に新しく、MIME :: Liteが最も多くのサンプルを持っている方法を探しています。私はEmail :: SimpleとNet :: SMTPを試しましたが、実際には動作しませんでした。だから私はMIME :: Liteに戻った。アイデアがなくなった後、私はその質問を投稿しました。 次に、私はNet :: SMTPに戻り、再び試しました。できるだけMimeを使わないようにしました。 –

+0

'Net :: SMTP-> new(...)'オプションに 'SSL => 1'を追加します。 – AnFi

関連する問題