Blazor 中带有主题和正文的 Mailto

Mailto with Subject and Body in Blazor

我想发送一封带有变量的邮件。第一个片段是原始 HTML mailto 文本,另一个是我的解决方案。

问题是不再生成邮件正文。

<a href="mailto:m.mustermann@domain.de?subject=Test%20Test%20Test%20Test&amp;body=Test%20Test,%0D%0A%0D%0ATest%20Test%20Test%20Test.">Test</a>

        <a href="mailto:?subject=MessageCode: @ErrorCode %20&amp;body=Test%20Test,%0D%0A%0D%0AURL: @navigationManager.Uri">Send Mail</a>

mailto: 中的所有内容都必须进行 Url 编码。特别是来自 navigationManager 的 URL。

这个有效:

<a href="mailto:?subject=MessageCode%3A @ErrorCode Test&body=Test%20Test,%0D%0A%0D%0AURL%3A @MyUrl">Send Mail</a>

string MyUrl => System.Web.HttpUtility.UrlEncode(navigationManager.Uri);

另请注意 %3A 而不是 :

当你的@ErrorCode 中可以包含标点符号时,请对其进行相同的处理。

允许 space 是件好事,因为 %20@ErrorCode 不起作用。