簡體   English   中英

無法發送電子郵件(smtp)

[英]Can't send email (smtp)

我正在做作業,單擊“驗證我”按鈕后必須發送電子郵件驗證。

以下是按鈕和文本框:

按鈕和文本框

因此,流程是,您必須輸入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("AlumnaeTeam@gmail.com", "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);
        }
    }

您是從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();
 }

希望它能滿足您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM