我正在尝试使用'sendmail'
的帮助在tcl中发送带附件的电子邮件,我正在使用以下代码
set msg {From: dinesh}
append msg \n "To: " [join $recipient_list ,]
append msg \n "Cc: " [join $cc_list ,]
append msg \n "Subject: $subject"
append msg \n\n $body
exec /usr/lib/sendmail -oi -t << $msg
现在,我想突出显示正文内容,以便当用户收到它时,可以使用粗体或斜体或任何格式的背景或前景来查看它。
我尝试使用HTML标记,但无法以HTML格式获取,而是获得了文字文本。
是否可以使用sendmail
的HTML类型的颜色编码?
答案 0 :(得分:1)
要发送将被另一端解释为具有样式的电子邮件,您必须以支持嵌入式样式的格式(例如HTML)发送邮件正文,并且您必须发送MIME标头假设正文是那种格式(即HTML内容与内容类型text/html
相关联。)。
组装MIME消息相当烦人,但有a package in Tcllib可以提供帮助:
package require mime
# Construct the body
set html "<h1>A test</h1>This is <i>a test</i> of MIME message composition."
set token [mime::initialize -canonical text/html -string $html]
# Add in the headers for email
mime::setheader $token From dinesh
mime::setheader $token To [join $recipient_list ,]
mime::setheader $token Cc [join $cc_list ,]
mime::setheader $token Subject $subject
# Serialize to a string
set message [mime::buildmessage $token]
mime::finalize $token
### How to check for sanity: puts $message
# Send the message
exec /usr/lib/sendmail -oi -t << $message
您也可以使用来自Tcllib的smtp
包进行发送(并且它与mime
包很好地集成)但如果exec /usr/lib/sendmail
有效,请坚持使用。
请注意,将结果消息显示为样式化需要与接收客户端进行协作。另外要注意的是,传统的内容也是无格式的,就像多部分消息中的纯文本一样。组装这些复杂的东西是因为使用mime
包有很大帮助。