电子邮件格式基础(纯文本电子邮件中的链接)

Posted

技术标签:

【中文标题】电子邮件格式基础(纯文本电子邮件中的链接)【英文标题】:Email formatting basics (links in plain text emails) 【发布时间】:2011-07-15 23:41:14 【问题描述】:

从服务器发送电子邮件并不像从客户端发送电子邮件那么容易。

我知道我可以选择发送纯文本或 html,但我想让事情尽可能简单。

我在电子邮件中有一个链接,用户应单击该链接以重置其密码。

当我发送整个链接并检查我的 gmail 时,它会自动变成一个超链接。

我的猜测是,并非所有电子邮件客户端都如此。

我有哪些选项可以发送纯文本格式的链接?

是确保有一个可点击的链接来使用 html 的唯一方法吗?

如果我使用 html,我必须拥有的最低标记是多少?

【问题讨论】:

【参考方案1】:

如果您以纯文本形式发送电子邮件,那么您的 URL 将是纯文本。纯文本,不能装。

如果您将其作为 HTML 发送,只需使用简单的锚标记并将 URL 用作 href 和文本。这样,如果邮件客户端删除了链接,至少用户仍然可以复制/粘贴 url。

【讨论】:

【参考方案2】:

另一个选项,而不是简单地在文本中包含 url,是使用 markdown-ish 语法,允许您将两者分开。例如,使用引用样式的链接引用(在此编辑器中使用 SO 的方式)可以这样做:

Hello, this is a plain email that links to a [cool page][1].

Sincerely,
Joe

[1]: http://foo.com/cool_page

我已经看到它是这样做的,而且效果很好,尤其是在您有很多链接的情况下。

【讨论】:

【参考方案3】:

RFC2822 中定义的语法类似于 angle-addr 和 RFC2368 中定义的mailto URL Schema。

RFC2396 提到在文本文档和协议字段中使用尖括号作为 URI 周围的分隔符:

尖括号“”以及双引号(“)字符是 排除,因为它们经常被用作 URI 周围的分隔符 文本文档和协议字段。字符“#”被排除在外 因为它用于从 URI 中的片段标识符分隔 URI 参考文献(第 4 节)。百分比字符“%”被排除在外,因为 用于转义字符的编码。

delims = "" | "#" | "%" |

来自实际使用的示例:

From: alpha@beta.com
To: theta@omega.com
Content-Type: text/plain

Some introduction text

The text I want to display in this link<https://some.target.dom/ain#place?i=want&to=go>

The rest of my plain text message

【讨论】:

【参考方案4】:

要发送 html 电子邮件,您必须为任何资源(图像 src、样式和 href 链接属性)提供没有相对链接(只有完整 url)的完整结构化 html 页面。

但文本电子邮件对于它们的用途来说已经足够好了,在网络邮件客户端中,链接可以通过浏览器在邮件文本中找到,而独立的邮件客户端会自行完成这项工作。

【讨论】:

以上是关于电子邮件格式基础(纯文本电子邮件中的链接)的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的 HTML 到文本电子邮件转换器

用mailto链接替换纯文本电子邮件地址

SMTP 中带有纯文本、HTML 和附件的电子邮件的正确电子邮件格式?

如何发送包含纯文本和 HTML 文本的邮件,以便每个邮件阅读器都可以选择适合它的格式?

flask 电子邮件进阶实践-用模板发送163邮件

如何通过 Celery 发送 HTML 电子邮件?它不断发送文本/纯文本