用Perl編寫讀取POP3郵箱的應用程式

來源:互聯網
上載者:User

  本文將討論開發人員利用Perl特定的能力編寫POP3電子郵件應用程式。

  像微軟的Outlook和Mozilla的雷鳥(Thunderbird)這樣的電子郵件用戶端程式能夠讓收發電子郵件變得極其簡單——絕大多數時候,你需要做的只不過是點擊一下工具條上的按鈕,軟體會為你完成與電子郵件伺服器進行通訊、驗證密碼、收取電子郵件等複雜的工作。

  但是在這種具有詐騙簡單表象背後卻牽涉大量的軟體編程工作。而且,如果你是一個軟體開發人員,你可能有一天會發現如果能夠把這樣的程式放到自己的應用程式會有多好啊。

  不用擔心那麼多,因為如果你在使用Perl,那麼你就可以利用一個叫做Net::POP3的小CPAN模組來實現這一願望,這個十分有用的模組會為你完成大多數複雜的工作。這個模組向POP3伺服器的互動操作公開一個簡單但是非常強大的API,提供一些預設的方法來進行伺服器身分識別驗證、訊息列表和收取、訊息刪除,以及結束會話——簡而言之,它提供了滿足使用者基本需要的一切。

  註:列表A到C裡的代碼文本可以從可下載的Zip檔案裡獲得。

  本文將通過使用Net::POP開發一個簡單的POP3電子郵件應用程式來探討它的一些功能。一開始你需要在Perl提示符下運行下面的命令來下載和安裝這個模組(如果你還沒有的話):

  perl> perl -MCPAN -e "install Net::POP3"

  開始建立下面的Perl指令碼(列表A):

  列表A

#!/bin/perl
# import package
use Net::POP3;
# ask user for critical variables
print "Mail host: ";
$host = <STDIN>;
chomp($host);
print "";
print "Mailbox username: ";
$user = <STDIN>;
chomp($user);
print "";
print "Mailbox password: ";
$pass = <STDIN>;
chomp($pass);
# initiate connection
# default timeout = 120 sec
$conn = Net::POP3->new($host) or die("ERROR: Unable to connect.");
# login
$numMsg = $conn->login($user, $pass) or die("ERROR: Unable to login.");
# display number of messages
if ($numMsg > 0) {
  print "Mailbox has $numMsg message(s).";
} else {
  print "Mailbox is empty.";
}
# close connection
$conn->quit();

  這個程式碼片段會要求使用者輸入三個內容:電子郵件伺服器的主機名稱、POP3使用者名稱和相應的密碼。一旦輸入了這三項內容,一個新的Net::POP3對象就會被建立,而對象的login()方法會被用來開啟一個到主機的串連,並驗證所提供的憑據。如果提供的憑據被伺服器認可,那麼login()方法就會返回郵箱裡的訊息數量(或者返回0,如果沒有訊息的話)。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.