2016-10-06 27 views
0

私はAsp.Net MVC 5プロジェクトを開発中です。私はこのコントローラを持っています。ユーザーからのデータを保存します。私は、私たちが自動生成したパスワードで彼/彼女に通知するデータを保存した後、そのユーザーに電子メールを送ります。 はここでは、下記のREFEREしてくださいアクションにデータを保存し、パスワードと電子メールでユーザーに電子メールを送信

[HttpPost] 
    public ActionResult Create(TeacherViewModel viewModel) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View("Create", viewModel); 
     } 

     var teacher = new Teacher 
     { 
      Identifier = viewModel.Identifier, 
      Name = viewModel.Name, 
      Surname = viewModel.Surname, 
      Email = viewModel.Email, 
      PhoneNumber = viewModel.PhoneNumber, 
      Ville = viewModel.Ville, 
      Block = viewModel.Block, 
      Password = viewModel.Password 
     }; 

     _context.Teachers.Add(teacher); 
     _context.SaveChanges(); 

     return RedireToAction("Index","Home"); 
+2

「SmtpClient」を使用して電子メールを送信できます。 Googleは「SmtpClientでメールを送信しています」と多くのサンプルを見つけることができます。 – Shyju

+0

かみそりの表示でそれを行う方法 –

+3

なぜそれを見たいのですか?データをテーブルに保存した後で、アクションメソッド(またはこのアクションメソッドから呼び出されているサービス)で実行します。 – Shyju

答えて

0

保存データを作成し、後にデータを保存し、電子メールでのメールアドレスとパスワードを送信する必要があるとして、そのパスワードとメール

をユーザーに電子メールを送信する私ですあなたの要件に応じてコード、希望はあなたを助けてくれるでしょう。

[HttpPost] 
public ActionResult Create(TeacherViewModel viewModel) 
{ 
    if (!ModelState.IsValid) 
    { 
     return View("Create", viewModel); 
    } 

    var teacher = new Teacher 
    { 
     Identifier = viewModel.Identifier, 
     Name = viewModel.Name, 
     Surname = viewModel.Surname, 
     Email = viewModel.Email, 
     PhoneNumber = viewModel.PhoneNumber, 
     Ville = viewModel.Ville, 
     Block = viewModel.Block, 
     Password = viewModel.Password 
    }; 

    _context.Teachers.Add(teacher); 
    _context.SaveChanges(); 

    // For send an email 
    string mailfrom = "sender mail", mailTo = teacher.Email, //"receiver mail", 
      subject = "Subject Line", filepath = "", htmlbody = ""; 

    filepath = Server.MapPath("~/path_for_email_template/template.html"); 
    htmlbody = System.IO.File.ReadAllText(filepath); 
    /* you can replace some dynamic contents from body as per your requirements like as name, email but for that you need to all the variable with unique pattern so you can easily replace them, ex: %name% */ 
    htmlbody = htmlbody.Replace("%name%", teacher.Name) 
       .Replace("%password%", teacher.Password) // as you want to send a password inside mail. 
       .Replace("%email%", teacher.Email); 

    try 
    { 
     // you need to include 
     // using System.Net; 
     // using System.Net.Mail; 
     SmtpClient client = new SmtpClient("host"); 
     client.Port = 25;// int port number 
     client.Credentials = new NetworkCredential("Sender_UserName", "Sender_password"); 
     client.EnableSsl = false;//true if ssl required 

     MailMessage msg = new MailMessage(); 
     msg.To.Add(mailTo); 
     msg.From = new MailAddress(mailfrom.Trim()); 
     msg.Subject = subject; 
     msg.Body = htmlbody; 
     msg.IsBodyHtml = true; 

     client.Send(msg); 

    } 
    catch (SmtpException ex) { throw (ex); } 

    return RedireToAction("Index", "Home"); 
} 
関連する問題