2016-05-29 21 views
0

私は宿題をしており、「確認してください」ボタンをクリックした後で電子メールの確認を送信する必要があります。電子メールを送信できません(smtp)

以下

は、ボタンやテキストボックスである:だから

button and textbox

、流れがある、あなたが入力するあなたのstudentIDを持って、その後、システムは、データベースをチェックし、あなたのIDが存在しないかではありません。あなたのstudentIDが存在する場合、私達は確認(ウェブにアクセスするためのランダムなパスワード)を送信します。

ここでは、電子メールを送信するのが苦労し、正直なところ、何が間違っているのかわかりません。

はここで(メール送信コードのみ)私のコードの一部です:

public void sendingverification() 
    { 
     //get EMAIL from spesific ID 
     string getEmail = "SELECT Email FROM TableStudent where StudentID = '" + IdTxt.Text + "'"; 
     SqlCommand sqlcomEmail = new SqlCommand(getEmail, con); 

     //get STUDENT FIRST NAME from spesific ID 
     string getName = "SELECT StudentFName FROM TableStudent where StudentID = '" + IdTxt.Text + "'"; 
     SqlCommand sqlcomName = new SqlCommand(getName, con); 

     string randomPw = System.Web.Security.Membership.GeneratePassword(10, 5); 
     string activationUrl = "http://aws.prominensa.com/izari/web-alumni/login.html"; 
     var fromAddress = new MailAddress("[email protected]", "S2 Alumnae Team"); 
     var toAddress = new MailAddress(sqlcomEmail.ToString(), sqlcomName.ToString()); 
     const string fromPassword = "123456"; 
     const string subject = "Activation Link for S2 Alumnae"; 
     string body = "Hello " + sqlcomName.ToString() + ", "; 
     body += "<br /><br />your account is almost done. You can login with your account now with this link below."; 
     body += "<br /><" + activationUrl; 
     body += "<br />< Please note that you will be able to login using: "; 
     body += "<br />< StudentID = " + IdTxt.Text; 
     body += "<br />< Password = " + randomPw; 
     body += "<br />< Thank you."; 

     var smtp = new SmtpClient 
     { 
      Host = "smtp.gmail.com", 
      Port = 587, 
      EnableSsl = true, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      Credentials = new NetworkCredential(fromAddress.Address, fromPassword), 
      Timeout = 20000 
     }; 

     using (var message = new MailMessage(fromAddress, toAddress) 
     { 
      Subject = subject, 
      Body = body 
     }) 
     { 
      smtp.Send(message); 
     } 
    } 
+0

できますか?1)コードを編集し、正しいC#コードを書いてください。 2)* Send *を呼び出す前であっても、あなたの '' 'message''オブジェクトは破棄されているようです。 – Ruskin

+1

あなたが取得している例外またはエラーは何ですか? –

答えて

0

があなたのGmailからメールを送信しているが、実行する必要があるいくつかの小さな設定があります。 (私はちょうどその設定を覚えていない、もしあなたがそれをしない場合、あなたはそれが何であるかを見つけることができます、エラーを取得します)。

メッセージを作成するのにStringを使用していますが、代わりにStringBuilderを使用してください。

このスニペットを確認してください。

  MailMessage mailObj = new MailMessage(); 
      //verification mail 
      mailObj.Subject = "Your Email Subject line"; 

      mailObj.Body = ComposeVerficationMailBody(emailDetails.MailMessage, emailDetails.RecipientName); 
      emailDetails.SenderName = "Your Website Name"; 


      mailObj.IsBodyHtml = true; 
      mailObj.Priority = System.Net.Mail.MailPriority.High; 

      //TO 
      mailObj.To.Add(emailDetails.RecipientEmailAddress); 
      mailObj.BodyEncoding = Encoding.Default; 
      mailObj.ReplyToList.Add(emailDetails.ReplyToEmailAddress); 
      //From 
      mailObj.From = new MailAddress(senderEmailAddress, senderDisplayName); 
      using (SmtpClient mailClient = new SmtpClient()) 
      { 
       mailClient.Host = "gmail host"; 
       mailClient.Port = 587; 
       mailClient.EnableSsl = false; 
       mailClient.UseDefaultCredentials = true; 
       mailClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
       //mailClient.Credentials = new NetworkCredential("senderEmail", "senderPassword"); 


       MailAddress msg = new MailAddress(emailDetails.ReplyToEmailAddress); 
       mailClient.Timeout = 500000; 
       mailClient.Send(mailObj); 



private String ComposeVerficationMailBody() 
{ 
    StringBuilder emailMessage = new StringBuilder(); 
    //build your message here 
    return emailMessage.toString(); 
} 

ご要望があれば幸いです。

関連する問題