簡體   English   中英

對在ASP.NET MVC中發送電子郵件感到困惑

[英]Confused about sending email in ASP.NET MVC

您好,任何人都可以解釋一下UserNamePassword是什么嗎? 我相信那些人在問我的Gmail用戶名和密碼對嗎? (我是將始終接收電子郵件的人)我正在嘗試為我的聯系表實施電子郵件服務。 對不起,我對asp.net mvc相當陌生。

public class MailService : IMailService
{
    public string SendMail(string from, string to, string subject, string body)
    {
        var errorMessage = "";
        try
        {
            var msg = new MailMessage(from, to, subject, body);
            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = "myemail@yahoo.com",
                    Password = "password"
                };
                smtp.Credentials = credential;
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.EnableSsl = true;
                smtp.Send(msg);
            }
        }
        catch (Exception ex)
        {
            errorMessage = ex.Message;
        }
        return errorMessage;
    }
}

是。 用戶名和密碼是主機所需的用戶名和密碼。 在這種情況下,您需要登錄smtp.gmail.com的憑據

是的,您需要使用登錄信息進行身份驗證,就像設置電子郵件客戶端來發送電子郵件一樣。

SmtpClient.Credentials屬性

獲取或設置用於驗證發件人的憑據。
....
某些SMTP服務器要求對客戶端進行身份驗證,然后服務器才能代表該客戶端發送電子郵件。

是的,這是gmail用戶名和密碼。
記住要創建一個應用程序專用密碼,並使用該密碼代替實際的Gmail密碼


在我的一個項目中找到以下代碼:

static Task sendMail(IdentityMessage message)
{
    string text = string.Format("Please confirm your account by pasting this link on your browser\'s address bar:\n\n{0}", message.Body);
    string html = "Please confirm your account by clicking <a href=\"" + message.Body + "\">this link</a><br/>";

    MailMessage msg = new MailMessage();
    msg.From = new MailAddress("id@gmail.com");
    msg.To.Add(new MailAddress(message.Destination));
    msg.Subject = message.Subject;
    msg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain));
    msg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));

    SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", Convert.ToInt32(587));
    System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("id@gmail.com", "gmailpassword");
    smtpClient.Credentials = credentials;
    smtpClient.EnableSsl = true;
    return smtpClient.SendMailAsync(msg);
}

暫無
暫無

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

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