私はこのガイドhttp://www.aspsnippets.com/Articles/Send-user-Confirmation-email-after-Registration-with-Activation-Link-in-ASPNet.aspxを登録して登録電子メールを送信するシステムを作成しました。ガイドがWebアプリケーションに適しているため、小さな問題に遭遇したようですコンソールアプリケーションでWebアプリケーションメソッドを使用する
このコードはWebアプリケーションには適していますが、コンソールアプリケーションに合わせて変更しようとしています。
body += "<br /><a href = '" +Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
は、Webクライアントまたはウリオプションについて読んでみましたが、私は絶対URIを取得し、コンソールアプリケーションからの起動リンクを生成するために必要な文字列を追加する方法を見つけ出すように見えるいけません。
必要に応じてコードを追加します。
この後に試してみました.SO How to build a Url?でも、正しく動作させるようです。
アクティベーションコードこれをDBに生成して保存します。
private static void SendActivationEmail(string email, string userName, MySqlConnection mysqlCon)
{
string activationCode = Guid.NewGuid().ToString();
using (mysqlCon)
{
using (MySqlCommand cmd = new MySqlCommand("UPDATE accounts SET [email protected] " +
"WHERE [email protected]me;"))
{
using (MySqlDataAdapter sda = new MySqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Username", userName);
cmd.Parameters.AddWithValue("@ActivationCode", activationCode);
cmd.ExecuteNonQuery();
mysqlCon.Close();
}
}
}
これはまさに私が求めていることです。私が取り組んでいるゲームの登録とログインを処理するサーバー用のコンソールアプリケーションです。このhttp://stackoverflow.com/questions/20164298/how-to-build-a-urlを使用してURLを構築しようとしていましたが、悲しいことにそれを動作させるように思われます。 –
送信メールに埋め込みたいリンクが常に同じではありませんか? –
リンク自体はconstですが、ActivationCodeは登録時に自動的に生成され、変数です。送信したいURLは "http://example.com/CS_Activation.aspx?ActivationCode=" + activationCode –