1

バウンティ用に更新されました。私が求めているのは、LightSwitch画面の1つにあるボタンをクリックしたときに電子メールを送信する簡単な方法です。電子メールとして送信できるように、(データを収集して処理するために)どの画面からでもデータにアクセスできる必要があります。これは、私の背中を壊したり、サードパーティのコンポーネントやサービスを使用したりせずに、どのように行うことができますか?この場合、サードパーティのものはオプションではありません。


私は見つけたすべてのチュートリアルに従いましたが、うまくいきません。LightSwitchアプリケーションから誰かにメールを送信することはできません。WinForms、WPF、Webサイトから電子メールを送信できるので、問題は自分のコードではないことがわかります。

私はこのチュートリアルに従って「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アプリケーションからメールを送信する方法を知っている人はいますか?

これはサービスやウェブサイトタイプのプロジェクトではなく、単なるデスクトップライトスイッチアプリであることに注意してください。

私が作成している請求書管理アプリがあります。残っているのは、テーブルのDateDue値に基づいて、支払いが大幅に遅れている場合に、支払い期限のリマインダーメールを自動送信することだけです。

System.Net.MailはSilverlightで利用できないと言った人々による、MSDNフォーラムでの他のコメントを見たことがあります。そのため、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それが役立つかどうかを確認してください。

あなたが言及したそのチュートリアル は、参照を追加しているthis oneを参照しています。System.Net

于 2012-11-12T20:31:34.620 に答える
1

System.Netへの参照をServerプロジェクトに追加できるはずです。このプロジェクトは .NET プロジェクトであり、Silverlight プロジェクトとは異なり、使用できるコードに制限がないからです。そのため、Server プロジェクトを右クリックして [参照の追加] を選択し、System.Net アセンブリを見つけます。

記事のメソッドは機能しますが、サーバープロジェクトで .NET コードを操作することはできますが、クライアントプロジェクトからそのコード (または独自のコード) に直接アクセスすることはできません。

クライアント プロジェクト コードがサーバー プロジェクト コードを直接呼び出すことができないという事実を回避するために使用される"コマンド テーブル パターン"と呼ばれるものについては、この記事をご覧ください。

もう 1 つの方法は、無料で利用できるOffice Integration Pack 拡張機能を使用することです。これにより、2010 バージョンの Excel、Word、およびOutlookを、デスクトップ ビジネス アプリケーションで一般的なさまざまな方法で簡単に操作できます。ドキュメント、PDF、スプレッドシート、電子メールを作成できます。 LightSwitch アプリケーションからのデータを使用した予定".

また、ダウンロード可能なサンプル アプリケーションもあります。

これが役立つことを願っています。

于 2012-11-18T09:27:02.657 に答える