標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) FI (57) File Transfer (1) Firefox (2) FM (2) fourjs (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (3) JavaScript (22) jQuery (6) JSON (1) K3b (1) LED (3) Linux (112) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) Oracle (125) Outlook (3) PDF (6) Perl (59) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (1) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (22) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (33) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) youtube (1) yum (2)

2012年2月6日 星期一

perl : 在utf8環境下寄出big5 mail example

#!/usr/bin/perl

require "$ENV{HOME}/perl/setEnv.pl";

use DBI;
use Mail::Sendmail;
use MIME::QuotedPrint;
use MIME::Base64;
use Encode;
#use utf8;

$ENV{LANG} = "zh_TW.Big5";
#$ENV{LANG} = "zh_TW.UTF-8";

my $dbh = DBI->connect("$connectString", "$username", "$pass")
  or print "Can't connect to database: ", $DBI::errstr, "\n";

my $mailList;
my $mailListCC;
my @dt = &getDate(-1);
my $html;

&main();

sub main {
    &getWO();
}

sub getWO {
    my $str = encode("utf8",decode("big5","公司人員"));
    my $sql = q{
select a.*,rownum
  from (
        select depart_no_to,depart_name_to,name_to,
               replace(email_to,'@','\@') email_to,
               round(sum(telamt)) telamt,a.leader,
               replace(b.email,'@','\@') email_leader
          from tel_vw_report t,hr_tbl_glsegment a,hr_tbl_personnel b
         where rmnth like to_char(sysdate-1,'yyyymm')
           and telcat = ?
           and t.depart_no_to = a.segment_no
           and a.leader = b.id
         group by depart_no_to,depart_name_to,name_to,email_to,a.leader,b.email
         order by telamt desc
       ) a
 where rownum <= 20
        };
    #print "$sql";
    #$sql = encode("utf8",decode("big5",$sql));
    my $sth = $dbh->prepare($sql);
    $sth->execute($str);
       
    $html .= qq{<table width = "50%" border="1">};
    $html .= qq{<tr><th width = "250%" bgcolor="#8fb3f3">排名</th><th width = "10%" bgcolor="#8fb3f3">部門代碼</th><th width = "5%" bgcolor="#8fb3f3">部門名稱</th>};
    $html .= qq{<th width = "5%" bgcolor="#8fb3f3">員工</th><th width = "5%" bgcolor="#8fb3f3">金額</th></tr>};
   
    while (my @data = $sth->fetchrow_array()) {
        #print "@data\n";
        $html .= qq {<tr>};
        $data[1] = encode("big5",$data[1]);
        $data[2] = encode("big5",$data[2]);

        $html .= qq {<td>$data[7]</td><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[4]</td>};
        $html .= qq {</tr>};
        $mailList   .= $data[3] .";";
      $mailListCC .= $data[6] .";";
    }
    $html .= qq{</table>};   
   
    &mailWOCheck($werks);
}

sub mailWOCheck {
    my %mail = (
                From => 'MIS <ty.ruan@aot.com.tw>',
                  To => "ty.ruan\@aot.com.tw",
                                CC => "",
             Subject => "本月員工手機被公司桌機撥打前二十名",
               );
    $mail{smtp} = "$smtp";
 
  $message = qq {"$dt[5]/$dt[4]/$dt[3] $dt[2]:$dt[1]:$dt[0]"<br>
<br>更多資訊,請至 <a href="http://aot-reporting/ReportServer/Pages/ReportViewer.aspx?%2f%e9%9b%bb%e8%a9%b1%e8%b2%bb%e7%b5%b1%e8%a8%88%2f%e8%a2%ab%e6%92%a5%e6%89%93%e6%89%8b%e6%a9%9f%e5%93%a1%e5%b7%a5%e6%8e%92%e5%90%8d&rs:Command=Render">這裡</a>查詢
<br>Time : 每日 08:09 寄出
<br>Action: 請至MIS申請集團MVPN號碼,完成後向分機16552登記
$html
};
  #$message = encode("utf8",decode("big5",$message));
   
    $boundary = "====" . time() . "====";
    $mail{'content-type'} = "multipart/html; boundary=\"$boundary\"";
   
$boundary = '--'.$boundary;
$mail{body} = <<END_OF_BODY;
$boundary
Content-Type: text/html; charset="big5"
Content-Transfer-Encoding: quoted-printable

$message
$boundary

$mail{body}
$boundary--
END_OF_BODY
   
    sendmail(%mail) || print "Error: $Mail::Sendmail::error\n";

}

#如果mail內容是utf8編碼,則要用Content-Type: text/html; charset="utf-8"

沒有留言:

張貼留言