10

プログラムでエラーレポートを電子メールで送信できるようにしたいと思います。ユーザー名/パスワード/SMTPサーバーなどをハードコーディングせずにこれを行うにはどうすればよいですか。コードに?(そうすることで、ユーザーはプログラムを逆コンパイルして、この電子メールアカウントを引き継ぐことができます。)

ポート25へのtelnetingでいくつかのことができると言われましたが、詳細については非常にあいまいです。Googleのほとんどのコードスニペットは、既存のアカウントを持っていることを前提としていますが、この状況では機能しません。

私は.NETv3.5(特にC#)を使用していますが、ほとんどの言語でアイデアは十分に似ていると思います。私がオフラインアプリでこれを行っていることに気づき、PHPコードなどを提供しない限り、問題はありません。

4

6 に答える 6

8

アカウントがgmail.comにある限り、プログラムの送信SMTPサーバーとしてgmail-smtp-in.l.google.comを設定します。そのサーバーを使用する場合、Gmailアカウントにメールを送信するためにパスワードを提供する必要はありません。

于 2008-08-27T12:50:09.120 に答える
7

接続するWebサービスを作成します。このWebサービスは、プログラムが提供するデータに基づいて電子メールを送信する必要があります。すべての機密アクセスデータはWebサービス側に保持されるため、より安全です。

于 2008-08-27T12:50:48.463 に答える
1

プログラムが直接電子メールを送信する必要がある場合は、何らかの方法でその情報を取得する必要があるため、断固とした攻撃者もその情報を取得する可能性があります。

簡単なhttpフォームまたはWebサービスをどこかでホストして、必要な情報をアプリケーションから投稿し(認証は不要)、保存して後で手動で確認できるようにするか、そのサーバーから電子メールを送信することを検討しましたか?

于 2008-08-27T12:47:56.567 に答える
0

最善の計画は、エラー情報を管理下で実行されているサービス(単純な場合はWebフォーム)に送信し、それから電子メールを送信する(または他の適切な方法でログに記録する)ことだと思います。

電子メールの送信がエンドユーザーにとって有益であると想定される場合、別のオプションは、ユーザーに独自のSMTPサーバー(および必要に応じてユーザー名/パスワード)を入力させることです-Unixシステムでは、sendmailを使用して、ユーザーが正しく構成する必要があります。私は以前、このアプローチを使用してシステムのスケジュールされたタスクのユーザーレポートを送信するシステムで作業していましたが、それは非常にうまく機能しました。

于 2008-08-27T12:53:10.657 に答える
0

必要なのは、使用している ISP の SMTP サーバーを知ることです。これは、独自の ISP の SMTP サーバーを使用する場合、メールリレー スパムを行っていると見なされないため、認証なしで通過できるためです。

残念ながら、その情報を簡単に取得できるとは限りません。または、会社で Exchange を使用している場合のように、匿名でログインできない小さな例外があります。

最初は、情報を暗号化し、実行時に復号化することを考えましたが、ネットワーク カードをスニッフィングすることで引き続き利用できます。ただし、他の人がすでに提案しているように、それを復号化とメール送信を行う (または、好みに応じて Web サービスに直接情報を送信する) Web サービスと組み合わせることができます。

于 2011-01-06T20:37:41.883 に答える
-2
MailMessage msg = new MailMessage("someone@foo.com", "someoneelse@bar.com");
msg.Subject = "Check it out!";
msg.Body = "Visit stackoverflow.com!";
SmtpClient client = new SmtpClient("some.smtp.server", 25);
client.Send(msg);
于 2008-08-27T12:53:31.670 に答える