日時: 2015/07/06 12:32 名前: lightbox
以下では、キャッシュを使っている為のでカレントに c3RkaW8ucGRm.b64.cache のようなファイルがエンコードされた状態で保存されるので、もう一度同じファイルを使用する場合は処理短縮が可能。
※キャッシュはエンコード済みなので、オリジナルより大きいので注意。
※HTML 本文が空の場合は、そのパートは作成されない
※HTML を外部ファイルから取得する
削除は以下を実行する
ファイル名の拡張子より、getMimeType で判断される MIME が決定される。
もし無ければ、application/octet-stream
拡張子:
#! /usr/bin/perl
# stdio.plのパス
require 'stdio.pl';
# jcode.plのパス
require 'jcode.pl';
# sendmailのパス
$stdio::sendmail = '/usr/sbin/sendmail';
# テンポラリファイルを格納するディレクトリのパス
$stdio::tmp_dir = './';
%in = ();
stdio::getFormData(\%in);
# **********************************************************
# 以下入力画面
# **********************************************************
print "Content-Type: text/html; charset=SHIFT_JIS\n";
print "\n";
# **********************************************************
# 画面用 HTML を外部ファイルより取得
# **********************************************************
$html = "";
open(IN,"html.txt");
while (<IN>) {
$html .= $_;
}
close(IN);
if ( $in{'send'} ne '' ) {
%header = (
'To' => $in{'to'},
'From' => $in{'from'},
'Subject' => $in{'subject'},
'X-Priority'=> '3',
'X-Mailer' => 'stdio.pl/9.10'
);
$charset="iso-2022-jp";
&get_html( "main_html", $html );
$result = stdio::sendmail(
\%header,
$in{'body'},
"",
"b64 cache",
"stdio.pdf;application/pdf;マニュアル.pdf;base64encode"
);
if ($result) {
$message = "<p>メールの送信は成功しました。</p>\n";
}
else {
$message = "<p>メールの送信は失敗しました。</p>\n";
}
}
stdio::removeCacheFiles("stdio.pdf");
$charset = "Shift_JIS";
&get_html( "main_html", $html );
print $main_html;
# **********************************************************
# 文字列内変数適用関数
# **********************************************************
sub get_html {
local($var_name,$var_data) = @_;
local($buffer) = "\$$var_name = <<\"HTML_DATA\";\n";
$buffer .= $var_data;
$buffer .= "HTML_DATA";
eval( $buffer );
}
↓HTML 定義
 |