如何利用Linux和HTML发送电子邮件?

在Linux系统中发送HTML格式的邮件,可以通过编写脚本来实现,以下是一个详细的步骤和示例:

准备工作

如何利用Linux和HTML发送电子邮件?插图1
(图片来源网络,侵删)

1、安装必要的软件:确保系统已安装sendmailpostfix等MTA(邮件传输代理)工具。

2、创建HTML模板文件:编写一个包含HTML内容的文本文件,例如mail.html

具体步骤

第一步:生成HTML内容

需要从数据源(如MySQL数据库)中提取数据并生成HTML格式的内容,假设已经有一个脚本可以从数据库中提取数据并生成一个.txt文件,然后将其转换为HTML格式。

如何利用Linux和HTML发送电子邮件?插图3
(图片来源网络,侵删)

#!/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版本头。

如何利用Linux和HTML发送电子邮件?插图5
(图片来源网络,侵删)

-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

(0)
上一篇 2024年10月17日 18:03
下一篇 2024年10月17日 18:14

相关推荐