2

MailSerderWS.asmxローカル PC で正常に動作するコードを持つという Web サービスを作成しましたAppCode/MailSerderWS.csが、本番環境での使用に関していくつか質問があります。

  1. 私のサーバーはaspをサポートしていないため、コーディングを使用できないため、基本的に私はサーバーからメールを送信するためにこのサービスを作成しています.
  2. この Web サービスを友人のサーバーに展開する前に、ローカル マシンでこの Web サービスを HTML Web ページで確認したいと考えています。以下は私が実行しているjqueryです。しかし、ポストバックしないため、受信トレイにメールを送信しません。
  3. このWebサービスを友達のライブサーバーにアップロードして、このWebサービスをHTMLページで利用できるようにするにはどうすればよいですか。また、上記のajaxメソッドを使用すると実行されないと思うので

項目 2 のコード:

$("#btnSendMail").click(function(){
                     $.ajax({
                    type: "POST",
                    url: "http://audiomedia.dev.asentechdev1.com/MailSenderWS.asmx/SendMail",
                    data: "{'sendermail':'aelectricwala52@gmail.com', 'type':'standalone app', 'body':'success'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                      alert(msg)
                    },
                    error: function(msg){
                        alert(msg.responseText);
                    }
                  });
                  })

前もって感謝します。

4

1 に答える 1

0

2つの構文エラーが表示されます。これを試して:

$("#btnSendMail").click(function(){
                    $.ajax({
                        type: "POST",
                        url: "http://localhost:16189/MailSenderWS.asmx/SendMail",
                        data: "{'sendermail':'aelectricwala52@gmail.com', 'type':'standalone app', 'body':'success'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(msg) {
                          alert(msg)
                        },
                        error: function(msg){
                            alert(msg);
                        }
                      });
                  });

しばらく前に、asmxWebサービスメソッドとそれをJqueryから呼び出すことについての記事を書きました。これはあなたを助けるかもしれません:http://www.tomot.de/en-us/article/8/asp.net/how-to-use-jquery-to-call-a-webservice-asmx-method

編集:あなたのアップデートに基づいて、私はそれをAjaxごとに呼び出そうとしましたが、それも私にとってはうまくいきませんでした。ブラウザでURLを呼び出すことができるため、サービスは正しくデプロイされているようです。私はあなたのサービスをサービスリファレンスとして追加し、あなたのメソッドを呼び出し、Fiddlerを使用して通信をキャプチャしました。

サーバーへの接続は問題ありませんが、サービスからの応答は、電子メールアカウントに関連する認証の問題を示しています。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendMailResponse xmlns="http://tempuri.org/">
<SendMailResult>
Fail Reason: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. sk1sm6949585pbc.0
</SendMailResult>
</SendMailResponse>
</soap:Body>
</soap:Envelope>

Webサービスを使用せずにローカルコンピューターから電子メールを送信してみて、機能することを確認してください。その後、再デプロイすると、準備が整います。
また、WebサービスのURLを変更することをお勧めします。これは、Webサービスをオンラインで投稿し、認証が含まれていないため、誰かがそれを悪用する可能性があるためです。

Edit2:私がFiddlerをどのように使用したかを説明します。まず、ダウンロードしてインストールする必要があります。

新しい.netアプリケーション(たとえば、ConsoleApplication)を作成します。でSolution Explorer、プロジェクトを右クリックして、をクリックしますAdd Service Reference。URLを使用する http://audiomedia.dev.asentechdev1.com/MailSender.asmx

これにより、プロジェクトにコードが生成されます。

Fiddlerを起動し、ConsoleApplicationでこのコードを実行します(生成された名前に応じて、このサンプルを適応させる必要があります)。

    ServiceReference1.MailSenderSoapClient client = new ServiceReference1.MailSenderSoapClient();
    client.SendMail();

Fiddlerの内部では、左側のサイトにWebセッションが表示されます。URLを含む新しいエントリが追加されました。クリックして。下部の右側にメッセージが表示されます

応答はエンコードされており、検査前にデコードする必要がある場合があります。変換するには、ここをクリックしてください。

そのメッセージをクリックしてTextViewTabPageを選択すると、サービスから次の結果が得られます。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendMailResponse xmlns="http://tempuri.org/">
<SendMailResult>Success</SendMailResult>
</SendMailResponse>
</soap:Body>
</soap:Envelope>
于 2013-01-13T21:40:34.567 に答える