アプリ版:「スタンプのみでお礼する」機能のリリースについて

BASPを使用しないコーディングを行いたく、下記サンプルのとおり記述すると送信はうまく行えました。
そこで、追加機能としてSMTPサーバーのタイムアウトの設定を行いたいですが、方法はないでしょうか?
ちなみに、BASPのServerプロパティでは、ポート番号と通信タイムアウト値(秒単位)が指定可能なようです。
よろしくお願いします。

Dim from As String = "from@microsoft.com"
Dim mailto As String = "to@microsoft.com"
Dim subject As String = "UtilMailMessage001"
Dim body As String = "<html><body>UtilMailMessage001 - success</body></html>"
SmtpMail.SmtpServer = "MyMailServer"
SmtpMail.Send(from, mailto, subject, body)

A 回答 (1件)

System.ThreadingThreadクラスを使って、SmtpMail.Sendを別スレッドで実行して


x秒間応答がなければAbortするとか。

private bool ans = false;

public bool SendMail()
{
Thread thread = new Thread(new ThreadStart(this.run));
thread.Start();
thread.Join(TimeSpan.FromSeconds(15));//タイムアウト
if (ans) {
return true;
} else {
thread.Abort();
return false;
}
}

private void run() {
SmtpMail.Send(*);
ans = true;
}
    • good
    • 0
この回答へのお礼

ありがとうございました。

他に設定する方法がないようなので、この方法をとらせていただきました。

しかし、ホントに他にないのでしょうか?

お礼日時:2004/09/09 11:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!