从服务器发送电子邮件并不像从客户端发送电子邮件那么容易。
我知道我可以选择发送纯文本或 html,但我想让事情尽可能简单。
我的电子邮件中有一个链接,用户应单击该链接来重置密码。
当我发送整个链接并检查我的 Gmail 时,它会自动变成超链接。
我的猜测是,并非所有电子邮件客户端都是这种情况。
以纯文本格式发送链接有哪些选项?
是确保有可点击链接使用html的唯一方法吗?
如果我使用 html,我必须拥有的最小标记是多少?
如果您以纯文本形式发送电子邮件,那么您的 URL 将是纯文本。这是纯文本,你无法打扮它。
如果您将其作为 HTML 发送,只需使用简单的锚标记并使用 URL 作为 href 和文本。这样,如果邮件客户端删除了链接,至少用户仍然可以复制/粘贴该网址。
除了简单地在文本中包含内联网址之外,另一种选择是使用 markdown-ish 语法,该语法允许您将两者分开。 例如,使用引用样式的链接引用(就像在这个编辑器中那样)可以像这样完成:
Hello, this is a plain email that links to a [cool page][1]. Sincerely, Joe [1]: http://foo.com/cool_page
我见过这种方式,效果很好,特别是当你有很多链接时。
有一个类似于
angle-addr
的语法,如 RFC2822 中定义,以及 mailto
URL 架构在 RFC2368 中定义。
RFC2396 提到在文本文档和协议字段中使用尖括号作为 URI 周围的分隔符:
尖括号“<" and ">”和双引号(“)字符是 排除是因为它们经常用作 URI 周围的分隔符 文本文档和协议字段。 排除字符“#” 因为它用于将 URI 与 URI 中的片段标识符分隔开 参考文献(第 4 节)。百分号字符“%”被排除,因为 它用于转义字符的编码。
delims =“<" | ">”| “#”| “%” | <">
源自现实世界使用的示例:
From: [email protected]
To: [email protected]
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
要发送 html 电子邮件,您必须提供完整的结构化 html 页面,没有任何资源(图像 src、样式和 href 链接属性)的相对链接(只有完整的 url)。
但是文本电子邮件足以满足其目的,在网络邮件客户端中,可以通过浏览器在邮件文本中找到链接,而独立的邮件客户端则自行完成这项工作。
像这样使用不带 href 的 achor 标签,这绝对有效
< a >链接
这将被视为文本