2016-06-07 2 views
1

우리는 Perl 프로그램을 사용하여 Net::SMTP::SSL 모듈을 사용하여 전자 메일을 보냅니다. Google은 또한 Google SMTP 서버를 사용하고 있습니다. 그들은 SMTP를 통해 하루에 100 통의 이메일을 보낼 수 있습니다 (무료 서비스를 이용하는 경우).SMTP 응답을 보내는 쓰레기를 감지하는 방법은 무엇입니까?

우연히 한도를 초과하여 Google에서 이메일을 보내지 않습니다. 그러나 우리의 Perl 프로그램은 그걸 고르는 것 같지 않습니다. 누구든지 보낼 실패를 감지하는 방법을 알고 있습니까?

나는이 관련 코드 생각 :

use Net::SMTP::SSL; 

my $smtp; 

$smtp = Net::SMTP::SSL->new('smtp.gmail.com', Port => 465, Debug => 0) or 
     die "Could not connect to Gmail server!"; 

$smtp->auth($L, $P) or die "Authentication Failed!"; 
$smtp->mail($from . "\n") or die "Cannot send as user $from!"; 
$smtp->to($to . "\n") or die "Cannot send to $to!"; 

$smtp->data(); 
$smtp->datasend("MIME-Version: 1.0\n"); 
$smtp->datasend("From: " . $from . "\n"); 
$smtp->datasend("To: " . $to . "\n"); 
$smtp->datasend("Subject: " . $subject . "\n"); 
$smtp->datasend("\n"); 
$smtp->datasend($body . "\n"); 
$smtp->dataend(); 
$smtp->quit; 
+1

'경고'는 분명히 어떤 것을 출력합니까? –

+0

배달 상태 알림을 위해'mail' 명령에'Return' 및/또는 'Envelope' 매개 변수를 사용할 수 있습니까? (['Net :: SMTP'] (http://search.cpan.org/~shay/libnet-3.08/lib/Net/SMTP.pm)) – zdim

+0

조금 읽기가 어렵습니다. 다시 포맷 해 주실 수 있습니까?/elsif/else를 시도하십시오. if + not = – xxfelixxx

답변

0

나는 한계에 도달하면 구글 메일의 전달을 거부하는 방법을 정확하게 알 수 없지만 몇 가지 방법이 있습니다 :

  • 은 메일을 수신 또는 수신 거부합니다.이 경우 코드에 경고가 표시되어야합니다.
  • 메일 배달을 거부합니다.이 경우 dataend()에 문제를 알려야합니다. 즉, 메일. 하지만 코드에서 dataend()을 사용하지 않아서 배달이 불행하게 될 수도 있습니다.
+0

고맙습니다. 필자는 누락 된 두 개의 결론을 예제에 추가했습니다. 그것들은 활성 코드에 있습니다. 나는 dataend() 문에 대한 테스트를하지 않았다. 그래서 나는 그것을 시도 할 것이다. 불행히도 복제가 어렵 기 때문에 제안이 제대로 작동하는지 하루 전에 알 수 있습니다. – Melchester

+0

예 dataend() 문에 대한 테스트가 작동합니다. 고맙습니다. – Melchester