發送郵件中文顯示亂碼的問題

今天作了一個小腳本,要實現的功能以下
一個是用戶信息文件
# cat file1
第一個位置#皮皮魯#第二個位置#0101#第三個位置#男#xxx@126.com
第一個位置#魯西西#第二個位置#0101#第三個位置#女#xxx@163.com
......

一個是模板文件
# cat file2
用戶姓名#1#用戶生日#2#用戶性別#3#填寫完畢

要把file1中的#...#分割的內容,分別替換到file2中「#1#」,「#2#」,「#3#」的位置,而後發送郵件到file1中的最後一列的郵箱地址中,下面是腳本內容:
# cat sendfile.sh
#!/bin/sh
cd /home/shell
tmpfile=`cat file2`

cat file1 |while read line
do
   str1=`echo $line |awk -F "#" '{print $2}'`
   str2=`echo $line |awk -F "#" '{print $4}'`
   str3=`echo $line |awk -F "#" '{print $6}'`
   mailuser=`echo $line|awk -F "#" '{print $7}'`

   tmp=`echo $tmpfile|sed -e "s/#1#/${str1}/g"`
   tmp=`echo $tmp|sed -e "s/#2#/${str2}/g"`
   tmp=`echo $tmp|sed -e "s/#3#/${str3}/g"`
   #echo $tmp   //獲得替換後的文件內容

   /usr/local/bin/sendEmail -f xxx@126.com -t "$mailuser" -s mail.126.com -u "string mail" -xu xxx@126.com -xp 123456 -m "$tmp"  -o message-charset=GB2312
   sleep 20s
done


開始的時候發送郵件,郵件的內容中文老是顯示亂碼,查看信頭,編碼格式爲
charset="iso-8859-1"
編輯了無數次file2文件都無效,後來無心中,sendEmail報了錯誤
Synopsis:  sendEmail -f ADDRESS [options]
  
  Required:
    -f ADDRESS                from (sender) email address
    * At least one recipient required via -t, -cc, or -bcc
    * Message body required via -m, STDIN, or -o message-file=FILE
    
  Common:
    -t ADDRESS [ADDR ...]     to email address(es)
    -u SUBJECT                message subject
    -m MESSAGE                message body
    -s SERVER[:PORT]          smtp mail relay, default is webmail.xywy.com:25
    
  Optional:
    -a   FILE [FILE ...]      file p_w_upload(s)
    -cc  ADDRESS [ADDR ...]   cc  email address(es)
    -bcc ADDRESS [ADDR ...]   bcc email address(es)
    -xu  USERNAME             username for SMTP authentication
    -xp  PASSWORD             password for SMTP authentication
    
  Paranormal:
    -b BINDADDR[:PORT]        local host bind address
    -l LOGFILE                log to the specified file
    -v                        verbosity, use multiple times for greater effect
    -q                        be quiet (i.e. no STDOUT output)
    -o NAME=VALUE             advanced options, for details try: --help misc
        -o message-file=FILE         -o message-format=raw
         -o message-header=HEADER     -o message-charset=CHARSET
        -o reply-to=ADDRESS          -o timeout=SECONDS
        -o username=USERNAME         -o password=PASSWORD
        -o tls=<auto|yes|no>         -o fqdn=FQDN
  
  Help:
    --help                    the helpful overview you're reading now
    --help addressing         explain addressing and related options
    --help message            explain message body input and related options
    --help networking         explain -s, -b, etc
    --help output             explain logging and other output options
    --help misc               explain -o options, TLS, SMTP auth, and more

原來sendEmail能夠設置字符編碼的,因而加上了
-o message-header=GB2312
就OK了~~~!!!!
相關文章
相關標籤/搜索