1

我正在使用 c# MailMessage 创建一封电子邮件,并且我正在尝试添加一个不需要单击的复选框。复选框将用于列出要为活动带来什么的清单(如装箱单)。我有:

MailMessage objEmail = new MailMessage();
objEmail.From = new MailAddress("sender@hotmail.com");
objEmail.To.Add(new MailAddress("example1@hotmail.com"));
objEmail.CC.Add(new MailAddress("example2@hotmail.com"));
objEmail.Bcc.Add(new MailAddress("example3@hotmail.com"));

objEmail.Subject = "Packing list!";
objEmail.IsBodyHtml = true;

objEmail.Body = @"<div width=""800px"">
    <h3>WHAT TO BRING</h3>
    <form>
        <input type=""checkbox"" name=""item"" value=""shirt"">Shirt<br>
        <input type=""checkbox"" name=""item"" value=""shoes"">Shoes 
    </form></div>";

但是当我发送电子邮件时,复选框不会出现在列表中。

使用outlook.com在outlook中输出:

需要带些什么

我有一辆自行车
我有一辆汽车


使用 Microsoft Outlook 在 Outlook 中输出:

需要带些什么

[ ]我有一辆自行车
[ ]我有一辆汽车


使用 hotmail.com 在 Outlook 中输出:

需要带些什么

我有一辆自行车
[]我有一辆汽车

所以问题出在邮件客户端,但问题是不一致的。我有什么办法可以做出一致的输出吗?有没有一种方法可以使用 html 来创建复选框,还是我只需要包含复选框的图像?提前致谢。

4

3 回答 3

1

我的猜测是它们与电子邮件客户端处理复选框的方式不一致。

为什么不将每个更改为纯文本 [X],以便所有电子邮件客户端都可以看到它。

于 2013-07-03T17:02:20.977 回答
1

Outlook.com 存在在单个父项中显示多个复选按钮或单选按钮的问题。// / 等在其中添加一个表格,并在单独的行中添加 2 个复选框,它应该可以正常工作。

奇怪的微软思维

于 2013-07-08T09:58:21.670 回答
-1

所有电子邮件客户端对允许的内容都有自己的规则。您可能会发现大多数提供程序不允许 JavaScript,只有一些允许定位元素,而有些则不允许。

您最好的选择是使用纯文本表单,或者可能是表单外观的图像。当我说图像时,并不是说把整个东西变成图像,每个复选框都有图像。一旦您单击此表单中的任何位置,它就会在您的网站上打开以与之交互。

此外,您真的不应该像现在这样在代码中构建 html。将其放在 MVC 视图或 webforms 部分中,然后从代码中调用文件。使用这种方法,您仍然可以将动态数据注入模板,同时将 HTML 放在它所属的位置。

于 2013-07-03T17:11:41.537 回答