2016-07-18 2 views
-1

написал сценарий Perl для извлечения содержимого из 2 массивов и сохранить его в файл (out.log) в приведенном ниже формате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] 

Теперь при чтении out.log содержимого файла, я должен отправить по электронной почте [email protected] с содержанием тела электронной почты

Your balance is:12345 

к, [email protected]

Your balance is:67890 

к, джон @ 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

В чем Ваш вопрос? Как прочитать один файл из входного файла или как отправить электронное письмо? – choroba

+0

Мое требование - отправить электронное письмо, прочитав файл out.log. Баланс счета и электронной почты получателей доступны в файле журнала '12345 [email protected] 67890 [email protected] 45678 джон @ gmail.com' я должен отправить по электронной почте на индивидуальную e- почты идентификаторы с содержанием тела электронной почты, как показано ниже: к, '[email protected] Ваш баланс: 12345' к, '[email protected] Ваш баланс: 67890' до, '[email protected] Ваш ba lance is: 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