質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

2回答

1507閲覧

メールからのクリック検知方法

sosososo

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2020/04/24 02:32

編集2020/04/24 04:59

現在C#(Windwos Forms)で業務システムを開発しています。

実現したいことは、
あるイベントが発生すると担当者に注文番号とURLを記載したメールを送信します。
メールを受信した担当者が記載されているURLをクリックすると「確認完了」とし、上記デスクトップアプリの画面上に通知したい。

①メールを送信
例:
注文が発生しました。
___________
注文番号:80008001
注文内容:XXXXXXXX
___________
上記内容確認したらURLをクリックしてください。
(https://gas_¥_jikkou/80008001)

②メールに記載されたGAS実行URL + 注文番号 (https://XXXXXX/80008001)がクリックされたら
何かが実行されてXServer上のDBに注文番号を書き込みたい。

③デスクトップアプリで通知を受信したら削除

質問なのですが、
②の実現方法のいい案はございますか?
最初はGAS(できるかは未調査)を考えていたのですが、
APIキー取得や完全無料ではないため別の方法を知りたいです。

宜しくお願い致します。

追記
失礼致しました。
私の質問の文章が悪かったです。

C#(Windwos Forms)でデスクトップアプリで一連の操作をして、指定されたユーザーあてにメールを送信します。
そのユーザーがメールを確認後、URLをクリックします。メールを受け取りクリックする端末はPC・スマートフォンです。
URLをクリックしたら確認したということをそのデスクトップアプリに通知をしたいです。
そのため、デスクトップアプリは何らかの方法でクリックしたということを知りたいのです。
当初考えていたのはGASのスクリプト実行URLにパラメータ?に注文番号を付加して、クリックされると注文番号がスプレッドシートに書き込まれ、デスクトップアプリは数秒おきにそこを確認しに行くという方法を考えていました。
しかし、それだとリクエスト回数も増えますし、完全無料ではないです。
契約中のXserverがあり、そこではMySQLが使用できるため、クリックされるとXServer上のMySQLに書き込み。デスクトップアプリは数秒おきにそこを確認しに行くという方法に考えを変更しようと思っています。
私が不明で質問したかった点は「クリックされるとXServer上のMySQLに書き込み」というところの実現方法です。
PHP?JavaScript?
WEB系アプリの製作経験がなく知識不足なため乱雑な文章でわかりにくいかと思いますが宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/24 02:45 編集

GAS とは何ですか? Google Apps Script? それを利用するのは必須ですか?
sosososo

2020/04/24 04:44

失礼致しました。 最初はGASの利用を考えていたのですが途中で変更になり、その修正ミスです。
退会済みユーザー

退会済みユーザー

2020/04/24 05:05

> 私が不明で質問したかった点は「クリックされるとXServer上のMySQLに書き込み」というところの実現方法です。 それは回答に書いたつもりなのですが? 回答になっていないならどこが期待する回答と違うのかなどのフィードバックを回答欄のコメントに書いてください。
otn

2020/04/24 11:03

クリックするURLとは、Xserver上のウェブサーバーのURLですか? であれば、簡単で聞くまでも無いので、違うのでしょうか??どこのURL??
sosososo

2020/04/24 13:13

>クリックするURLとは、Xserver上のウェブサーバーのURLですか? >であれば、簡単で聞くまでも無いので、違うのでしょうか??どこのURL?? その方法だと簡単なんですか? すみません、その方法を教えて頂けますか?
otn

2020/04/24 13:56

Xserver上にそういうウェブアプリを作れば良い。
guest

回答2

0

デスクトップアプリの仕様が不明ですが... 仕様を変更できるのであれば...

WindowsでURLのプロトコルからアプリを起動する にあるように Web ブラウザから URLスキーム(プロトコル) によって、アプリを起動することが可能なので独自の「URLスキーム」を作成して、「デスクトップアプリ」側でURLスキームに対応して処理を記載するのが良いのではないでしょうか。

動作的には

  1. Xserver の URL を記載したメールを送信
  2. メールのURLをクリックしたら、Xserver 上で登録処理をした後に URLスキームを指定してリダイレクト。
  3. デスクトップアプリが URLスキームを受けて処理をする。

という感じで作成できないでしょうか。

投稿2020/04/24 04:03

CHERRY

総合スコア25218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sosososo

2020/04/24 13:13

回答ありがとうございます。 試してみます。
guest

0

②メールに記載されたGAS実行URL + 注文番号 (https://XXXXXX/80008001)がクリックされたら何かが実行されてXServer上のDBに注文番号を書き込みたい。

GAS とか何だか分かりませんが、それを使うのは必須ではないようなので、別の例を紹介しておきます。

ASP.NET Web アプリの ASP.NET Identity ベースのユーザー登録に、ユーザーが登録後即ログインできるようにするのではなく、ユーザーにメールを送信し、ユーザーがメールを受け取ったらそのメールの中に貼ってあるリンクをクリックするとそのアカウントを有効にしてログインできるようにする仕組みがあります。

メールの内容は以下のようになっています。

イメージ説明

そのリンクをクリックすると、https://localhost:44360/Identity/Account/ConfirmEmail という URL に(開発環境なのでホスト名が localhost:44360 になってます)クエリ文字列(ユーザー ID とトークン)が送信され、ユーザーが登録したアカウントが有効になります。

XServer にそのような Web API が作れるのであれば、同様な形にする手もあると思います。

投稿2020/04/24 03:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sosososo

2020/04/24 13:13

回答ありがとうございます。 試してみます。
退会済みユーザー

退会済みユーザー

2020/04/24 13:46

そういう仕組みを作りこむ必要があるので、簡単に「試してみます」というわけにはいかないのですが、そのあたりは理解されてるということで良いのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問