2016-08-19 7 views
-4

私は、perlを使用してストレージ容量レポートと構成設定レポートを生成するスクリプトをいくつか実行しました。私はperlを使ってhtmlのメールIDにこのレポートを送ってほしい。perlを使用してtxtファイルをhtmlに変換する方法

私はperlプログラミングの初心者です。

+0

「レポート」はどのように見えますか?表形式で描くことができるものは何ですか?詳細については質問を編集してください。 – iMan

+0

txtファイルをhtmlに変換しようとしているのですか?テキストファイルを添付したhtmlメールを送信したいのですか? – AbhiNickz

+0

質問を分ける必要がありますが、今は不明です。 1)テキストをhtmlに変換する必要があります。2)perlを使って電子メールにファイルを送信しますか?あれは正しいですか? –

答えて

2

あなたの質問は非常に曖昧なので、大いに役立つことはありません。しかし、これは正しい方向にあなたを指すかもしれません。

基本的に3つのタスクがあります。

  1. レポートをデータ構造に解析します。
  2. データ構造を使用してHTMLドキュメントを生成します。
  3. 電子メールでHTMLドキュメントを送信します。

私はあなたのレポートについて何も知らないので、私は本当にステップ1を手伝うことができません。 CSV形式のファイルをお持ちの場合は、Text:CSVが便利です。このレポートを生成している場合は、JSONなどの解析が容易な形式でレポートを生成できます。

手順2では、テンプレートエンジンをお勧めします。 Template Toolkitを使用しますが、他のオプションも利用できます。その考え方は、変数データをどこに置くかを指定する "タグ"を持つすべてのHTMLを含むテンプレートファイルを作成することです。それはemail.ttと呼ばれるファイルにだと仮定すると、

<html> 
    <head><title>Some Title</title></head> 
    <body> 
    <h1>Some Title</h1> 
    <p>Blah...</p> 
    <table> 
[% FOREACH row IN data -%] 
     <tr><td>[% row.value %]</td><td>[% row.another_value %]</td></tr> 
[% END -%] 
    <table> 
    </body> 
</html> 

、あなたは、あなたがこのようなテンプレートを処理したい、@dataと呼ばれるハッシュの配列にデータを持っている:簡単なレベルでは、それは次のようになります

use Template; 

@data = ({ 
    value => 'something', 
    another_value => 'something else', 
}, { 
    value => 'something', 
    another_value => 'something else', 
}); 

my $tt = Template->new; 

$tt->process('email.tt', { data => \@data }, \$email_body) 
    or die $tt->error; 

これで拡張されたHTMLが$email_bodyになります。それでステップ3に戻ります。

私は電子メールを送信するためにEmail::Stufferをお勧めします。

use Email::Stuffer; 

Email::Stuffer->from  ('[email protected]') 
       ->to  ('[email protected]') 
       ->html_body($email_body) 
       ->send; 
関連する問題