从Light Switch应用程序发送电子邮件

时间:2012-11-12 20:12:28

标签: c# .net visual-studio visual-studio-2012 visual-studio-lightswitch

更新了赏金。当我点击我的一个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. 其他每个教程都是一样的 - 所以我知道的其他任何东西我都无法尝试。
  4. 如下所示,我尝试添加System.Net.Mail作为参考,但它不在列表中。我也尝试将using System.Net.Mail添加到文件的顶部,但就像我说的那样;它不可用/不存在/无论如何。

    enter image description here

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

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

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

    我在MSDN论坛上看到过其他人的评论,他们说Silverlight中没有System.Net.Mail,这就是LightSwitch中不存在的原因。我不知道这是不是真的,但它肯定是这样的。为什么他们不能让LightSwitch应用程序使用System.Net.Mail而不让我们跳过篮球只是为了让它工作?

    即使我说我知道我的代码很好,但无论如何我都会发布。

    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);
                        }
                    }
                }
            }
        }
    }
    

2 个答案:

答案 0 :(得分:2)

System.Net.Mail是命名空间,而不是程序集。尝试添加对System.Net的引用,看看是否有帮助。

你提到参考的教程 this oneSystem.Net,他们正在添加对。

的引用

答案 1 :(得分:1)

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

文章中的方法可行,但可能不那么明显的是,尽管您可以在 Server 项目中使用.NET代码,但您无法直接访问该代码(或来自客户端项目的自己的代码。

看看这篇文章,我们称之为“Command Table Pattern”,用于解决客户端项目代码无法直接调用服务器项目代码的事实。

另一种选择是使用免费提供的Office Integration Pack extension可以通过各种方式轻松操作2010版本的Excel,Word和 Outlook 在桌面业务应用程序中很常见。使用LightSwitch应用程序中的数据创建文档,PDF,电子表格,电子邮件和约会“。

还有一个sample application可供下载。

我希望这会有所帮助。