当前位置:首页 > 后端开发 > 正文内容

java 发送邮件 css-style 款式丢掉紊乱问题,有解决方案

邻居的猫1个月前 (12-09)后端开发336

邮件系列

java 怎么完成发送邮件 email?

java 建立归于自己的邮件服务器

java 发送邮件 css-style 款式丢掉紊乱问题,有解决方案

java 发送邮件-04-java 邮件发送 http 接口怎么界说?

开源项目

email: 一行代码完成邮件发送

前语

咱们好,我是老马。

咱们日常开发,关于邮件发送应该能不生疏。本系列就让咱们一同学习一下邮件相关的内容。

问题描绘

运用 email 发送邮件时,发现一切的 css 款式丢掉。

感觉有些古怪,看了下邮件设置也是 html 格局。

后来一想就知道原因了,其实邮箱也是根据 css 显现的,假如邮件内容有大局格局,肯定会导致显现,乃至安全问题。

所以去查了下相关原因,而且记载下自己的解决方案。

问题原因

运用java发送html到qq邮箱后,发现选用“外部款式表”的css都没有

外部款式表:

<link rel="stylesheet" type="text/css" href="css/my.css">

估测邮箱是从出于安全战略(估测是避免CSRF跨站恳求假造)才会过滤掉外部引证的,为了绕过这个阻拦,改为运用“内部款式表”写法

<head>
    <style type="text/css">

    </style>
</head>

发送后qq邮箱能够了,可是126邮箱不可,126邮箱比qq邮箱更严厉,竟然把style标签里的内容悉数过滤掉了,这说明不同的邮箱过滤战略不一样。

那大企业发的邮件,为啥款式都显现正常?

为了一探终究就找了领英的邮件看了看,发现它将款式都写在标签了,也便是“内联式”写法。

发送邮件的邮件内容,能够去掉head、body,只留需求的部分,由于,邮箱会过滤head、body,并将这个两个标签的款式悉数过滤掉,所以发送html邮件时,直接上内容就好,比方

<div style="background-image: url('http://domain:port/a.png');font-size:14px;">
  <h1 style="text-align: center;">邮件标题</h1>
  <p>邮件内容</p>
</div>

内嵌式格局解决方案

这种咱们当然不可能一个个手动去改,这样就太笨了。

相似的结构网上比较多,CssToInlineStyles-PHPjuice-JS

假如你有需求,能够考虑运用契合自己言语的,比方 java。

此处我仅仅简略运用下,所以选用了网页版别 网页版-juice

发送转化后的 html,发现显现正常。

开源结构

email 发送

email-java 发送东西

css

CssToInlineStyles

Juice inlines CSS stylesheets into your HTML source.

网页版-juice

参考资料

HTML 邮件兼容问题

在发送邮件HTML中,CSS等问题

发送邮件到qq邮箱、126邮箱后丢掉款式

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=139

分享给朋友:

“java 发送邮件 css-style 款式丢掉紊乱问题,有解决方案” 的相关文章

2000+多种开源大模型随意布置!一键建立本地大模型,不挑环境、不挑装备(ollama 装置布置教程《Windows/Linux,Mac》)

2000+多种开源大模型随意布置!一键建立本地大模型,不挑环境、不挑装备(ollama 装置布置教程《Windows/Linux,Mac》)

2000+多种开源大模型随意布置!一键建立本地大模型,不挑环境、不挑装备(ollama 装置布置教程《Windows/Linux,Mac》) 一、Ollama介绍 2.1 根本介绍 Ollama是一个支撑在Windows、Linux和MacOS上本地运转大言语模型的东西。它答运用户十分方便地运转和运...

python免费,免费资源与学习路径

python免费,免费资源与学习路径

当然可以,我随时准备为您提供免费的Python编程帮助!您有任何问题或需要帮助的地方,请随时告诉我。Python编程语言入门指南:免费资源与学习路径Python作为一种简单易学、功能强大的编程语言,已经成为全球范围内最受欢迎的编程语言之一。对于想要学习Python的新手来说,以下是一篇详细的入门指南...

go与go to的区别,深入解析“go”与“go to”的区别

go与go to的区别,深入解析“go”与“go to”的区别

Go 和 go to 在英语中虽然都含有“去”的意思,但它们的用法和含义有所不同。1. Go 是一个动词,表示“去”的动作。它可以单独使用,也可以与介词、副词等搭配使用,表示不同的方向、目的地等。例如: I'm going to the store.(我要去商店。) He goes to...

python字符串反转, 使用字符串切片反转字符串

字符串 Hello, World! 的反转结果是 !dlroW ,olleH。 Python字符串反转:多种方法详解在编程中,字符串反转是一个常见的操作,它涉及到将字符串中的字符顺序颠倒。Python作为一门简洁而强大的语言,提供了多种方法来实现这一功能。本文将详细介绍Python中字符串反转的多种...

java1.8安装,java18下载官网

java1.8安装,java18下载官网

安装Java 1.8的步骤如下:1. 下载Java 1.8安装包:首先,您需要从Oracle官网下载Java 1.8的安装包。请访问以下链接并选择适合您操作系统的版本进行下载:https://www.oracle.com/java/technologies/javasedownloads.html2...

php最新版本,php最新版本是多少

php最新版本,php最新版本是多少

PHP的最新版本是PHP 8.4。根据多个来源的信息,PHP 8.4 预计将于2024年11月21日正式发布。这一版本引入了许多新特性和改进,包括属性钩子、JIT编译器改进、链式调用方法等,进一步完善了PHP在现代开发中的应用。你可以通过以下链接获取最新的PHP版本和相关下载信息: PHP 8.4...