2016-07-18 8 views
-1

は、読み取りによってPerlスクリプトは、電子メール送信する読み出しファイルの内容

open my $fh, ">", "out.log" or die "Cannot open out.log: $!"; 
for my $i (0..$#arr_1){ 
    print $fh "$arr_1[$i]\t$arr_2[$i]\@gmail.com\n"; } 
close $fh; 


12345 [email protected] 
67890 [email protected] 
45678 [email protected] 

について以下の形式で 2つのアレイからコンテンツを抽出し、ファイル(out.log)にそれを格納するためのPerlスクリプトを書いout.logファイルの内容は、私は、[email protected]

Your balance is:67890 
に電子メール本文の内容

Your balance is:12345 

[email protected]に電子メールを送信する必要があります、ジョン@ gmail.com

Your balance is:45678 

から

私は、ログファイルを読み込み、以下のが、上記のシナリオを実現する方法がわからないようなメール本文の内容を形成することができます。

my $mail_body = "Your balance is:\n"; 
{ 
    local $/ = undef; 
    open FILE, "file" or die "...: !$"; 
    $mail_body .= <FILE>; 
    close FILE; 
} 

今後ともお役に立ちたいと思います。事前におねがいします。

+2

ご質問はありますか?入力ファイルから1つのファイルを読み込む方法、または電子メールを送信する方法? – choroba

+0

私の要件は、out.logファイルを読んで電子メールを送信することです。口座残高や電子メールの受信者は、ログファイルに用意されてい '私は、個々のE-に電子メールを送信する必要が12345 [email protected] 67890 [email protected] 45678ジョン@ gmail.com' 以下のような電子メールの本文の内容とメールID: '[email protected] に残高がある:12345' に'[email protected] あなたの残高は次のとおりです。67890' to、 '[email protected] あなたのbaランスは:45678' – Goku

+0

@Vigsあなたは本当にチョロバの質問に答えていません。あなたは私達に教えてくれますか?(1)必要に応じてファイルを読む方法を知っていますか? (2)メールを送る方法を知っていますか? – zdim

答えて

0

まだテストしていませんが、これで問題は解決します。

use strict; 
use warnings; 

use Mail::Sendmail; 

open my $fh, '<', 'output.log' or die "could not open file output.log !$"; 

while (my $line = <$fh>) { # read the content of the file line by line 
     # match and capture balance and the email address 
     my ($balance, $to_email) = $line =~ /(\d+)\s+(\S+)/; 
     %mail = (To  => $to_email, 
       From => '[email protected]', 
       Messag => "your balance is: $balance" 
      ); 
     sendmail(%mail); 
} 
close $fh; 
+0

いくつかのカスタマイズでは、その素晴らしい仕事。ありがとう。 – Goku

関連する問題