我需要一點建議/推動正確的方向。使用Procmail將帶有內嵌圖像的HTML電子郵件保存爲PS或PDF
我已經編寫了一些小型腳本,它接收傳入的HTML電子郵件,將其轉換爲PostScript,然後通過CUPS將其發送到指定的打印機。打印機基於電子郵件的收件人。
我正在使用以下來實現此目的;
- 進出口
- 的Procmail
- html2ps的
- 兩個自定義腳本(貼在下面)
- 的電子郵件是由進出口銀行收到並傳遞到流Procmail
- .procmailrc文件調用自定義腳本「process_mail」,通過主題和內容作爲參數
- 「process_mail」拉內容到一個函數,並呼籲「get_html_from_message」(我沒有做任何與主題還)
- 「get_html_from_message」轉儲除HTML以外的所有內容HTML然後轉換爲PostScript
- PostScript文件被髮送到指定的打印機。
問題
- 在階段html2ps的產生一個錯誤併發送NDR回發送器,指出有一個錯誤打開所述圖像。 打開cid時出錯:logo.jpg
- PostScript文件已成功打印,但顯然不包含電子郵件中的圖像。
我的問題是:如何從電子郵件中獲取這些圖像,以便它們能夠在PostScript文件中成功打印出來?
如果PostScript不合適,我很樂意將其轉換爲PDF格式,但即使轉換爲PDF,我也無法看到圖像,因爲我無法看到它們。
。procmailrc文件
SHELL=/bin/bash
# Extract the subject and normalise
SUBJECT=`formail -x"Subject: "\
| /usr/bin/tr '[:space:][:cntrl:][:punct:]' '_' | expand | sed -e 's/^[_]*//' -e 's/[_]*$//'`
YMD=`date +%Y%m%d`
MAKE_SURE_DIRS_EXIST=`
mkdir -p received_mail/backup
if [ ! -z ${SUBJECT} ]
then
mkdir -p received_mail/${YMD}/${SUBJECT}
else
mkdir -p received_mail/${YMD}/no_subject
fi
`
# Backup all received mail into the backup directory appending to a file named by date
:0c
received_mail/backup/${YMD}.m
# If no subject, just store the mail
:0c
* SUBJECT ?? ^^^^
received_mail/${YMD}/no_subject/.
# Else there is a subject, generate a unique filemane, place the received email
# in that file and then execute process_mail passing the filename and subject as parameters
:0Eb
| f=`uuidgen`; export f; cat > received_mail/${YMD}/${SUBJECT}/${f}; $HOME/bin/process_mail received_mail/${YMD}/${SUBJECT}/${f} "${SUBJECT}"
# and don't deliver to standard mail, don't want to clutter up the inbox.
:0
/dev/null
process_mail
#/bin/bash
# Test Printer
printer=$(whoami)
file=$1
subject=$2
function process_rrs {
typeset file
file=$1
cat $file \
| $HOME/bin/get_html_from_message \
| html2ps \
| lp -d ${printer} -o media=a4 2>&1
}
case "$subject" in
*)
process_rrs $file
;;
esac
get_html_from_message
cat | awk '
BEGIN {
typeout=0
}
{
if($0 ~ /<html/)
typeout=1
if($0 ~ /^------=/)
typeout=0
if(typeout)
print $0
}'
編輯:格式化
你有一個[沒用使用'cat'(http://www.iki.fi/era/unix/award.html) – tripleee
'出口F'出現是多餘的。導出使變量對子流程可見;但是這裏沒有任何子進程使用這個變量。 – tripleee
謝謝。我會在早上看看這個。總是學習:) – Soddengecko