整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

linux 下发送html邮件显示源码的问题的解决办

linux 下发送html邮件显示源码的问题的解决办法

题说明:

之前应领导要求把每日的运营数据定时发送到几位老板的邮箱里。我写了个shell脚本定时从数据库中查询并导出html文件,导出的html格式太丑,找了个html模板套上数据。用linux下的mail发送出去。在foxmail中显示正常,但是在qq邮箱显示的确实html的源码。如下图:

mial命令如下:

mail -s "$(echo -e "new terminal\nContent-Type: text/html;charset=UTF-8")" -c aa@bb.cc aa@qq.com < terminal.html

试了编码问题及不用style的css还是不行,在网上搜索了一下,qq邮箱也有不少人遇到html显示源码的问题。多数原因是说,不显示html就是防止跨站攻J(xss)内容被转义了。好吧,只能换其他方法了。

网上搜了一下,看到有人用sendmail 可以发送html的邮件,果断试了一把。使用方法大同小异。这里把它贴出来

安装sendmail

yum -y install sendmail
chkconfig sendmail on
service sendmail start

发送邮件

cat > mail.txt << EOF
From: aa@bb.com
To: aaaa@qq.com
Content-type: text/html;charset=UTF-8
Subject: test<style type="text/css">
.container div{ width: 300px; margin: 5px; border-style: solid; border-width: 0px; float: left; }
.container img{ width: 300px; height: auto; }
.container p{ text-align: center; margin: 0px; font-size: 20px; font-style: italic; }
</style>
<div class="container">
<div>
 ...省略...
</div>
</div>
EOF
cat mail.txt | sendmail -t

mail和sendmail有啥的区别呢

mail 是用户使用客户端(类似foxmail)负责向MTA 撰写 发送邮件,类似浏览器的作用,叫做mail user agent.

sedmail就是负责邮件传输的MTA,做邮件服务器的,类似apache, nginx的作用,可以用作mail transport agent

所有以后要发送图片,html的内容还是用sendmail。

下是一些常用的HTML网页源代码示例,这些示例可用作HTML文档的基础:

1、创建一个简单的HTML文档结构:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport"content="width=device-width,initial-scale=1.0">

<title>My Web Page</title>

</head>

<body>

<h1>Hello,World!</h1>

<p>This is a simple HTML webpage.</p>

</body>

</html>

2、插入图片:

<img src="image.jpg"alt="Description of the image">

3、创建超链接:

<a href="https://www.example.com">Visit Example.com</a>

4、创建无序列表:

<ul>

<li>Item 1</li>

<li>Item 2</li>

<li>Item 3</li>

</ul>

5、创建有序列表:

<ol>

<li>First item</li>

<li>Second item</li>

<li>Third item</li>

</ol>

6、创建表格:

<table>

<tr>

<th>Header 1</th>

<th>Header 2</th>

</tr>

<tr>

<td>Row 1,Cell 1</td>

<td>Row 1,Cell 2</td>

</tr>

<tr>

<td>Row 2,Cell 1</td>

<td>Row 2,Cell 2</td>

</tr>

</table>

7、插入段落:

<p>This is a paragraph of text.</p>

8、插入换行符:

<p>This is some text.<br>This is on a new line.</p>

9、创建一个文本输入框:

<input type="text"name="username"placeholder="Enter your username">

10、插入按钮:

<button type="button">Click me</button>

这些示例代码只是HTML的基础,HTML具有更丰富的功能和标记选项,可以根据需要进行扩展和定制。请根据您的具体需求,使用这些示例作为起点,构建您自己的网页。

【名扬银河企业网站系统】

【免费】提供企业【网站源码】,简单易用,无须拥有代码基础。

欢迎留言或私信我们咨询。

以上内容由【名扬银河】企业网站系统原创发布,转载请注明出处。

TML 实体

在 HTML 中,某些字符是预留的。

在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。

如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。

字符实体类似这样:

&entity_name;
或者
entity_number;

如需显示小于号,我们必须这样写:< 或 <

提示:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

HTML基础教程: 浏览器中符号是怎么显示出来的

不间断空格(non-breaking space)

HTML 中的常用字符实体是不间断空格( )。

浏览器总是会截短 HTML 页面中的空格。如果您在文本中写 10 个空格,在显示该页面之前,浏览器会删除它们中的 9 个。如需在页面中增加空格的数量,您需要使用 字符实体。

实例

<html>
<body>
<h2>字符实体</h2>
<p>&x;</p>
<p>用实体数字(比如"divide")或者实体名称(比如 "#247")替代 "X",然后查看结果。</p>
</body>
</html>

HTML基础教程: 浏览器中符号是怎么显示出来的

希望以上可以解决你们心中的一些疑惑,其中可能会有不对的地方或是需要改进的地方,欢迎留言纠正。感觉还不错欢迎关注收藏转载哦