0
我有一個系統使用臨時密碼向用戶發送電子郵件。我正在使用以下腳本來輸出電子郵件,但我正在尋找一種方法來提取密碼並將值存儲在變量中。電子郵件的正文將具有以下文字「您的臨時密碼是」我想解析電子郵件正文並提取。我假設我可以使用解析模塊搜索「您的臨時密碼是」,然後將下一個標記存儲到變量中,但是我對perl的瞭解並不是那麼好。任何人都可以將我指向正確的方向嗎?如何解析電子郵件以提取文本(密碼)並存儲在變量中
#!/usr/bin/perl
use Net::POP3;
my $username="user";
my $password="password";
my $host="192.168.17.50";
# Constructors
my $pop = Net::POP3->new($host)||
die "Problem calling Net::PoP->new\n$!\n";
# $pop = Net::POP3->new($host, Timeout => 60);
if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
foreach my $msgnum (keys %$msgnums) {
my $msg = $pop->get($msgnum);
my $password = extract_password($msg)||
die "Problem with extract_password\n$!\n";
print $password;
$pop->delete($msgnum);
}
}
$pop->quit;
如果我使用包含模式的預定義字符串,但是當我在$ msg變量上運行該函數時不起作用,這將起作用。我認爲我在分配不同的數據類型或其他東西時做錯了什麼。我已經很長時間了,我已經做了嚴肅的編程 my $ msg = $ pop-> get($ msgnum); my $ password = extract_password($ msg)|| 死「用extract_password問題\ n $!\ n」; – Joe 2011-04-13 18:22:53
從[documentation](http://perldoc.perl.org/Net/POP3.html),Net :: POP3的'get()'函數返回對文本行列表的引用。你可以首先使用'my $ msg_text = join(「\ n」,@ $ msg)'將它們合併爲一個字符串',然後將其傳遞給我上面寫的函數。 – 2011-04-16 02:18:54