MFMailComposeViewController 破坏了 html 模板中的 CSS 样式

发布于 2024-08-30 16:22:05 字数 661 浏览 9 评论 0原文

我使用 MFMailComposeViewController 以 html 格式发送消息。 如果我的 html 模板包含 css 样式

<div class="margin:10 10 10 0"> <a href="domain.name">Go To</a></div>

在这种情况下,它效果很好

但是如果我发送:

<a href="domain.name">Go&nbsp;To</a>

那么我会看到带有破损样式的信件(3D不是我的印刷错误

<div style=3D"margin:10 10 10 10;"><a href=3D"www.google.com">Go=C2=A0To</a></div>

)当我插入国家字母表中的模板符号时,它被破坏了。

有人可以说出问题所在并自行检查吗?

I use MFMailComposeViewController to send a message in html format. If my html template contains the css styles:

<div class="margin:10 10 10 0"> <a href="domain.name">Go To</a></div>

In this case it works good.

But if I send:

<a href="domain.name">Go To</a>

then I see the letter that comes with broken styles as there (3D is not my misprint)

<div style=3D"margin:10 10 10 10;"><a href=3D"www.google.com">Go=C2=A0To</a></div>

Well as the letter goes broken when I insert in the template symbols from national alphabets.

Somebody can tell what the problem and check with yourself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

燕归巢 2024-09-06 16:22:05

我修改了答案以添加解决方案的第二部分:

我发现使用 MFMailComposeViewController 发送带有标签的 HTML 电子邮件有两个问题。

1) 对于任何最终被编码为可引用打印的 HTML 正文,您必须放置换行符,以便没有行 > > 76 个字符。

2) 标签内的文本应包含在 a 内,以确保 MFMailComposeViewController 不会将内容解释为链接中的链接。

例如,以下 HTML:

<a href='http://link/to/my/site.com'>site.com</a>

被转换为:

<a href='http://link/to/my/site.com'><a href='http://site.com'>site.com</a></a>

通过将我的 HTML 正文更改为:

<a href='http://link/to/my/site.com'><span>site.com</span></a>

电子邮件已正确发送。

一个完整的例子:

NSMutableString *body = [NSMutableString string];
// add HTML before the link here with line breaks (\n)
[body appendString:@"<h1>Hello User!</h1>\n"];
[body appendString:@"<a href=\"http://www.mysite.com/path/to/link\"><span>Click Me!</span></a>\n"];
[body appendString:@"<div>Thanks much!</div>\n"];

干杯!

I revised my answer to add a second part of the solution:

I found two issues using MFMailComposeViewController to send HTML email with tags.

1) For any HTML body that ends up being encoded as quoted-printable, you must put line breaks such that no lines are > 76 chars.

2) The text within the tag should be wrapped within a to ensure that MFMailComposeViewController does not interpret the content as a link within a link.

For example, the following HTML:

<a href='http://link/to/my/site.com'>site.com</a>

was being turned into:

<a href='http://link/to/my/site.com'><a href='http://site.com'>site.com</a></a>

By changing my HTML body to:

<a href='http://link/to/my/site.com'><span>site.com</span></a>

the email was sent correctly.

A full example:

NSMutableString *body = [NSMutableString string];
// add HTML before the link here with line breaks (\n)
[body appendString:@"<h1>Hello User!</h1>\n"];
[body appendString:@"<a href=\"http://www.mysite.com/path/to/link\"><span>Click Me!</span></a>\n"];
[body appendString:@"<div>Thanks much!</div>\n"];

Cheers!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文