- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在从 MS Outlook (2013) 发送电子邮件,它运行良好,但在适用于 Android 的 GMail 应用程序中(它也适用于 iOS),行(行)之间存在间隙。
您可能知道 MS Outlook 在发送电子邮件时会更改 HTML(您可以看到发送的 HTML 只是将电子邮件另存为 HTML)。
为了简单起见,我创建了一个简单的 HTML 模板,以便您可以帮助我找出此处的问题。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Gmail APP issue</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<table style="border:0px;border-spacing:0px;border-collapse:collapse;">
<tbody>
<tr>
<td>
<p style="margin:0;">THIS CELL (TD) HAS TOP AND BOTTOM EXTRA SPACE WHEN RECEIVING FROM MS OUTLOOK</p>
</td>
</tr>
<tr>
<td>
<p style="margin:0;">THIS CELL (TD) HAS TOP AND BOTTOM EXTRA SPACE WHEN RECEIVING FROM MS OUTLOOK</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
到目前为止,我已经尝试过以下方法,但没有成功:
line-height:0
到 <td>
元素,然后是我的自定义 line-height
到 <p>
元素。这是我能得到的最接近的,但是 <td>
不显示在 MS Outlook 中,因为我们需要使用单位。另一方面,如果我们使用单位(即 0 像素),那么在应用程序中接收电子邮件时会遇到同样的问题。min-width
到表格和表格单元格。没有什么适合我。
我要为 <p>
添加红色背景元素和绿色元素到 <td>
元素,这样您就可以看到这里发生了什么。
邮件在 MS Outlook 中是这样呈现的:
您可以看到 Gmail 添加的差距。也许文本太长但没关系,只是想输入一些描述性的东西。
我会继续尝试,直到问题解决。如果有人可以帮助我,我将不胜感激。
编辑:我将粘贴每个客户端生成的经过处理的 HTML(从上面的 HTML 模板),以便更容易发现问题。我将只粘贴表格单元格输出:
这是 MS Outlook 发送的 HTML:
<tr>
<td style="padding:0in 0in 0in 0in">
<p class="MsoNormal"><span style="font-size:13.5pt;font-family:"Times New Roman",serif;
color:black">THIS CELL (TD) HAS TOP AND BOTTOM EXTRA SPACE WHEN RECEIVING
FROM MS OUTLOOK</span></p>
</td>
</tr>
正如您所注意到的,MS Outlook 添加了一个 <p>
元素来包装表格内容,即使我们使用另一个元素(div、span)代替,正如一些用户所建议的那样。
另请注意,MS Outlook 已删除了 style="margin:0;
我们在 <p>
中进行了内联元素但类 MsoNormal
避免了顶部和底部边距,因此 MS Outlook 不会在此处添加任何间隙。
这就是 Gmail (Android) 处理从 MS Outlook 收到的 HTML 的方式
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:13.5pt;font-family:"Times New Roman",serif;color:black">THIS CELL (TD) HAS TOP AND BOTTOM EXTRA SPACE WHEN RECEIVING FROM MS
OUTLOOK<u></u><u></u></span></p>
</td>
</tr>
并且这种风格被应用到 <p>
元素:
.msg-8292648110214437287 p {
margin-right: 0cm;
margin-left: 0cm;
font-size: 12.0pt;
font-family: "Times New Roman",serif;
}
msg-8292648110214437287
似乎是 Gmail 自动生成的类。如您所见,仅将边距应用于左侧和右侧,但不适用于顶部和底部。
默认应用 margin-top 和 margin-bottom:
p {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
}
所以差距是那些边距顶部和边距底部。
我尝试过的:
p { margin:0px!important; }
在<style>
标签font-size:0px
到 <td>
元素,(并在文本周围的范围内添加所需的元素)这样我们就可以摆脱边距,但它也不起作用。希望此编辑有所帮助,这里需要一些 gmail 方面的专业知识。这在 GMail (Web) 中有效,这可能是一个提示。
同样,这比我预期的要花更长的时间,非常感谢您的帮助。谢谢。
最佳答案
这是我能得到的最好的,除非有人提出更好的解决方案,否则我将遵循这种方法:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Gmail APP issue</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
td p.MsoNormal {margin: 0.1px}
</style>
</head>
<body>
<table style="border:0px;border-spacing:0px;border-collapse:collapse;">
<tbody>
<tr>
<td>
<p class="MsoNormal">TABLE CELL 1</p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal">TABLE CELL 2</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
我们正在做的是从 p 元素中删除内联样式,添加 MsoNormal 类并在 <style>
中应用边距。标签。
MS Outlook 将占用该边距并将其内联到 <p>
中元素,所以 Gmail/Gmail 应用程序最终会收到边距集:)
请注意我们设置了 0.1 像素的边距,否则 Outlook 不会将其内联到 <p>
中元素。
请记住,有些电子邮件客户端无法识别样式标签,有些则无法应用来自类的 css,因此我们应该设置 margin: 0.1px
在 p 元素中作为内联样式
关于html - Gmail Android 和 iOS 应用程序。从 MS Outlook 发送时,CSS 样式(td 和 p 元素)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54615570/
以下 Outlook 的命令适用于 Outlook 2010: outlook.exe /c ipm.note /m "&subject=abc" /a "c:\attach.txt" 但它不适用于
我有 2 个电子邮件帐户,一个是 Gmail,另一个是 Outlook。我想在邮件到达时自动将进入 Outlook 的邮件接收到 Gmail。我该怎么做?Outlook 是否存在任何可能阻碍此操作的安
Outlook 加载项如何在邮件上设置 MAPI 属性(例如正文内容),但仅将其保存在本地缓存中(而不发送回 Exchange 服务器)?我见过使用一些加密插件来完成此操作。 我愿意使用几乎任何可以实
有什么方法可以在 Outlook 的模板主题或正文中插入今天的日期吗?这样,每当我打开保存的模板时,今天的日期就会自动显示在主题和正文中。 有什么内置功能吗?像 Date() 这样的东西? 最佳答案
我有一个时事通讯系统,可以跟踪阅读它的人。尽管此功能仅在允许下载图像的情况下才有效。但这不是我现在的问题。 我的问题是,当我在 Outlook (2010) 中打开新闻稿并授予下载图像的权限时,我的系
我需要从 Outlook msg 文件中读取内容。目前我正在使用来自 CodeProject.com 的类(class)项目来实现这一点,因为在服务器上部署 VSTO 和 Outlook 不是一种选择
我正在开发可与共享邮箱一起使用的 Outlook 加载项。目前,office 插件在委托(delegate)场景中不可用,但 MS 已经发布了支持这些场景的预览版本。https://learn.mic
我正在开发可与共享邮箱一起使用的 Outlook 加载项。目前,office 插件在委托(delegate)场景中不可用,但 MS 已经发布了支持这些场景的预览版本。https://learn.mic
我开发了一个运行良好的 Outlook Web 插件。它是一个任务 Pane ,可在约会的组合模式下使用,它收集事件数据、添加一些数据并将其发送到某个地方的 API。 我现在想做的是将经过身份验证的用
在 Outlook for Mac 中,office.js Outlook 加载项在我假设是 Safari Web 控件的任务 Pane 中运行。我无法确定您如何从任务 Pane 中运行的加载项中清除
Marshal.GetActiveObject("Outlook.Application") 在 Outlook 启动并继续运行时抛出 操作不可用(HRESULT 异常:0x800401E3 (MK_
我有一个 VSTO Outlook 2007 加载项。我必须检查 Outlook 是否与交换服务器脱机/联机。我正在使用如下代码: NameSpace ns = Application.GetNam
我正在尝试在图像上方添加文本,如下所示。它适用于除 Outlook 2010、Outlook 2007、Outlook 2013 之外的所有电子邮件客户端。所有这三个客户端都忽略了填充。我到处都试过了
有没有办法处理 Outlook 邮件项中收件人的悬停事件?我想在悬停时显示一个弹出窗口,其中包含有关收件人的一些信息,并想知道是否可以通过 Outlook 加载项实现。 最佳答案 因为 Inspect
我正在尝试在 Outlook 2007 中创建、更新和删除事件(但最好它适用于所有版本)。创建和删除事件工作正常。我关注了 several threads但由于某种原因更新操作失败。 当我双击 ICS
我在 ms Outlook 中有 2 个帐户('user1@test.com' - 默认配置文件,'user2@test.com'),我正在尝试使用非默认帐户通过 python 发送消息。这是我的代码
我有一个我最近继承的Outlook 2007加载项,目前在生产中存在一个问题,有些用户正在周期性地,似乎是随机地禁用其加载项。外接程序中没有日志,并且在外接程序代码中的每个方法/事件调用周围都存在tr
是否可以为 创建 HTML 电子邮件签名? 2003年展望或以上不引用外部图像? 也就是说,使用那些特殊的“cid”引用,但将图像本身嵌入到签名中,而不是嵌入到文件系统或网络中。 这适用于根据用户的各
似乎没有太多信息或任何好的代码示例用于以编程方式设置 Outlook 2007 MailItem 的类别。 MSDN has a limited page ,并提到使用 VB 的 拆分 功能,或多或少
Outlook 2007 在 Outlook 中撰写新邮件时,可以创建指向其他邮件的链接吗? Whww 我正在撰写一封新邮件,我想创建一个指向已发送项目的链接,单击此链接应该会打开邮件。 这能做到吗?
我是一名优秀的程序员,十分优秀!