1

更新赏金。我所追求的是一种简单的发送电子邮件的方法,当我单击我的一个 LightSwitch 屏幕上的按钮时。我需要能够从任何屏幕访问数据(以收集和处理它),以便可以将其作为电子邮件发送。如何在不破坏我的支持或使用任何第三方组件或服务的情况下做到这一点?在这种情况下,第三方的东西不是一种选择。


我已经按照我能找到的所有教程进行操作,但它不起作用。无论我怎么做,我都无法通过 LightSwitch 应用程序向某人发送电子邮件。我可以从 WinForms、WPF、网站发送电子邮件——所以我知道问题不是我的代码。

我已经按照本教程进行了“T”,并且(http://blogs.msdn.com/b/bethmassi/archive/2011/01/27/how-to-send-html-email-from-a-lightswitch -application.aspx)它仍然无法工作。首先,这是我目前的问题:

  1. 在本教程中,它会告诉您将 Class.cs 文件添加到 Server 文件夹中的 UserCode 文件夹中——我就是这样做的。
  2. 它还告诉您添加对 System.Net.Mail 的引用(显然) - 我试过了。System.Net.Mail 不可添加。我到处都找不到!
  3. 其他所有教程都是相同的 - 所以我知道没有其他可以尝试的方法。

正如您在下面看到的,我尝试添加 System.Net.Mail 作为参考,但它不在列表中。我也尝试过将文件添加using System.Net.Mail到文件的顶部,但就像我说的那样;它不可用/不存在/无论如何。

在此处输入图像描述

有人知道如何从 LightSwitch 应用程序发送电子邮件吗?

请注意,这不是服务或网站类型的项目,只是一个简单的桌面 Lightswitch 应用程序。

我有一个正在制作的发票管理应用程序,剩下的唯一部分是根据表中的 DateDue 值在付款逾期时自动发送付款到期提醒电子邮件。

我在 MSDN 论坛上看到有人说 System.Net.Mail 在 Silverlight 中不可用,这就是为什么它在 LightSwitch 中不存在的其他评论。我不知道这是不是真的,但它肯定是这样看的。为什么他们不能让 System.Net.Mail 可用于 LightSwitch 应用程序,而不让我们为了让它工作而费尽心思?

即使我说我知道我的代码很好,我还是会发布它。

C#:(请注意,在我的 CLASS 文件 System.Net.Mail 中可用但是,我无法从其他任何地方或整个项目中的任何其他文件访问此文件中此代码的任何部分!)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Web;

namespace LightSwitchApplication
{
    public class JTS
    {
        public class Mail
        {
            public string recipient { get; set; }
            public string subject { get; set; }
            public string message { get; set; }

            public void Send()
            {
                using (MailMessage mailmessage = new MailMessage())
                {
                    mailmessage.From = new MailAddress("@.com");
                    mailmessage.To.Add(recipient);
                    mailmessage.Subject = subject;
                    mailmessage.Body = message;
                    mailmessage.Priority = MailPriority.High;

                    using (SmtpClient client = new SmtpClient())
                    {
                        client.Credentials = new System.Net.NetworkCredential("@.com", "_SVN");
                        client.EnableSsl = false;
                        client.Host = "m..com";
                        client.Port = 25;
                        client.Send(mailmessage);
                    }
                }
            }
        }
    }
}
4

2 回答 2

2

System.Net.Mail是命名空间,而不是程序集。尝试添加参考以System.Net查看是否有帮助。

你提到的那个教程引用 了这个System.Net他们正在添加引用。

于 2012-11-12T20:31:34.620 回答
1

您应该能够将System.Net的引用添加到Server项目中,因为该项目是一个 .NET 项目,与 Silverlight 项目不同,它对您可以使用的代码没有任何限制。因此,您将右键单击服务器项目,并选择“添加引用”,然后找到 System.Net 程序集。

文章中的方法确实有效,但可能不太明显的是,虽然您可以在Server项目中使用 .NET 代码,但您不能从Client项目直接访问该代码(或您自己的代码)。

看看这篇关于我们称之为“命令表模式”的文章,它用于绕过客户端项目代码不能直接调用服务器项目代码的事实。

另一种选择是使用免费提供的Office 集成包扩展,“它可以轻松地以桌面业务应用程序中常见的各种方式操作 2010 版 Excel、Word 和Outlook 。创建文档、PDF、电子表格、电子邮件和使用来自您的 LightSwitch 应用程序的数据的约会”。

还有一个示例应用程序可供下载。

我希望这有帮助。

于 2012-11-18T09:27:02.657 回答