簡體   English   中英

無法在Perl中發送電子郵件

[英]Cannot send email in perl

由於某些原因,我無法在perl中發送電子郵件。 我檢查了我的環境路徑和sendmail路徑,一切都正確。 但是我沒有收到電子郵件。我不確定是否遺漏了一些東西。

#!/usr/bin/perl -wT
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;

print header;
print start_html("Results");



$ENV{PATH} = "/usr/sbin" ;

open (MAIL, "|/usr/sbin/sendmail -oi -t") or 
    &dienice("Can't fork for sendmail: $!\n");

my $recipient = "myusername\@gmail.com";

print MAIL "To: $recipient\n";

print MAIL "From: nobody\@cgi101.com\n" ;

print MAIL "Subject: Form Data\n\n";

foreach my $p (param()) {
    print MAIL "$p = ", param($p), "\n";
}

close(MAIL);

print <<EndHTML;
<h2>Thank You</h2>
<p>Thank you for writing!</p>
<p>Return to our <a href="index.html">home page</a>.</p>
EndHTML

print end_html;

很難說出問題所在。 我假設郵件在命令提示符下正常工作?

也就是說,您是否嘗試過MIME :: Lite?

use MIME::Lite;

my $body = <<EndHTML;
<h2>Thank You</h2>
<p>Thank you for writing!</p>
<p>Return to our <a href="index.html">home page</a>.</p>
EndHTML

my $msg = MIME::Lite->new(
  Type    => 'text/html',
  From    => 'nobody@cgi101.com',
  To      => 'myusername@gmail.com',
  Subject => 'Form Data',
  Data    => $body
);

$msg->send;

無法在不知道自己遇到什么錯誤的情況下提供很多幫助。 但是現在是2014年,我們可能比直接與sendmail聊天發送電子郵件要好一些。

對於電子郵件處理,您可能應該在CPAN上的Email :: *名稱空間中查找。 特別是,建議使用Email :: Sender發送電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM