在Linux系统中发送HTML格式的邮件,可以通过编写脚本来实现,以下是一个详细的步骤和示例:
准备工作
1、安装必要的软件:确保系统已安装sendmail
或postfix
等MTA(邮件传输代理)工具。
2、创建HTML模板文件:编写一个包含HTML内容的文本文件,例如mail.html
。
具体步骤
第一步:生成HTML内容
需要从数据源(如MySQL数据库)中提取数据并生成HTML格式的内容,假设已经有一个脚本可以从数据库中提取数据并生成一个.txt
文件,然后将其转换为HTML格式。
#!/bin/bash
today=date "+%G%m%d"
html_input(){
echo "<tr><td>$1</td><td>$2</td><td>$3</td></tr>" >> /data/email/mail.html
}
html_input_red(){
echo "<tr style='color:red'><td>$1</td><td>$2</td><td>$3</td></tr>" >> /data/email/mail.html
}
set_info(){
i=1
table_counts=$(awk -F "," '{print $1}' /data/email/backuplog"$today".txt) #表计数集合
for tablename in $table_counts
do
j=2
html_sour_count=$(awk -F "," 'NR==i { print $j}' i=$i j=$j /data/email/backuplog"$today".txt) #mysql中对应的计数
let "j++"
html_tar_count=$(awk -F "," 'NR==i { print $j}' i=$i j=$j /data/email/backuplog"$today".txt) #数仓中对应的计数
if [ "$html_sour_count" == "$html_tar_count" ];then
html_input $tablename $html_sour_count $html_tar_count #构造每行表格信息
else
html_input_red $tablename $html_sour_count $html_tar_count #构造每行表格信息
fi
let "i++"
echo $tablename $html_sour_count $html_tar_count $i $j
done
echo "</table>" >> /data/email/mail.html
}
set_info
EMAIL_EXCEL=$(cat /data/email/mail.html)
chmod 777 backuplog.sh
第二步:使用formail和sendmail发送邮件
利用formail
处理HTML格式的文件,并通过sendmail
发送邮件。
#!/bin/bash cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:layer4 config monitor" | /usr/sbin/sendmail -oi recipient@example.com
在这个命令中:
cat mailfile.html
读取HTML文件的内容。
formail -I "MIME-Version:1.0"
添加MIME版本头。
-I "Content-type:text/html;charset=gb2312"
设置内容类型为HTML,并指定字符集为gb2312以避免中文乱码。
-I "Subject:layer4 config monitor"
设置邮件主题。
/usr/sbin/sendmail -oi recipient@example.com
使用sendmail发送邮件。
第三步:合并所有步骤到一个脚本
将所有步骤合并到一个脚本中,以简化操作。
#!/bin/bash Step 1: Generate HTML content from database bash /data/email/backuplog.sh bash /data/email/sendmail.sh Step 2: Send the email with HTML content cat /data/email/mail.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:Email Title" | /usr/sbin/sendmail -oi recipient@example.com chmod 777 email.sh
通过上述步骤,可以在Linux系统中成功地发送包含HTML内容的电子邮件。
小伙伴们,上文介绍linux html 邮件发送的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/78901.html