問題があります。次のような構造を使用してメールを送信しようとしています。
private void SendMail()
{
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("mymail@mail.com", "mypassword"),
EnableSsl = true
};
client.Send("mymail@mail.com", "AdressClient@mail.com", "Subject", "Body");
}
この構造は問題なく動作しますが、メイン プログラムで遅延が発生するため、次のように別のスレッドで SendMail 関数を実行したいと考えています。
private void ButtonTestSendMail_Click(object sender, EventArgs e)
{
//THREAD
Thread ThreadSendEmail = new Thread(new ThreadStart(this.SendMail));
ThreadSendEmail .IsBackground = true;
ThreadSendEmail .Start();
}
private void SendMail()
{
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("mymail@mail.com", "mypassword"),
EnableSsl = true
};
client.Send("mymail@mail.com", "AdressClient@mail.com", "Subject", "Body");
}
この時点で、AdressClient@mail.com、件名、本文など、メールのパラメーターを変更する必要があることに気付きました。
しかし、方法がわかりません:/
次のようなパラメーターを受け入れるスレッドを作成するにはどうすればよいですか。
private void ButtonTestSendMail_Click(object sender, EventArgs e)
{
string Body = "BodyTest";
string AdressMail = "AdressMail@test.com";
string Subject = "SubjectTest";
//THREAD
Thread ThreadSendEmail = new Thread(new ThreadStart(this.SendMail(Body,AdressMail,Subject));
ThreadSendEmail .IsBackground = true;
ThreadSendEmail .Start();
}
private void SendMail(string Body, string Adress, string Subject)
{
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("mymail@mail.com", "mypassword"),
EnableSsl = true
};
client.Send("mymail@mail.com", Adress, Subject, Body);
}
私は試しましたが、動作しません. MethodName Expected があり、エラーが次の行にあるという通知があります:
Thread ThreadSendEmail = new Thread(new ThreadStart(this.SendMail(Body,AdressMail,Subject));
パラメータを受け入れるスレッドを作成するにはどうすればよいですか? ご協力ありがとう御座います!よろしくお願いします!