簡體   English   中英

帶有ASP.NET Core的“聯系我們”頁面-SMTP服務器問題

[英]“Contact us” page with ASP.NET Core - SMTP server issue

我是Web編程的新手,正在使用ASP.NET核心創建網站。 我正在嘗試創建一個標准的“與我聯系”頁面,用戶可以在其中輸入姓名,電子郵件,主題和用戶名。 我正在使用MailKit庫發送電子郵件:

public IActionResult SendEmail(Contact contact)
{
    var emailMessage = new MimeMessage();

    emailMessage.From.Add(new MailboxAddress(contact.Name, contact.Email));
    emailMessage.To.Add(new MailboxAddress("myname", "myemail"));
    emailMessage.Subject = contact.Subject;
    emailMessage.Body = new TextPart("plain") { Text = contact.Message };

    using (var client = new SmtpClient())
    {
        client.Connect("smtp-mail.outlook.com", 587); 
        client.Authenticate("myemail", "myemailpassword");
        client.Send(emailMessage);
        client.Disconnect(true);
    }
    return RedirectToAction("Index", "Home");
}

我的問題是,每當我發送電子郵件時,SMTP服務器就會用我的SMTP帳戶信息替換“發件人”標頭。 不僅是Outlook,而且我嘗試使用的每個主要SMTP服務器(包括gmail)似乎都是這種情況。 是否有不會出現此問題的SMTP服務器,還是我需要找到另一種發送電子郵件的方式?

首先,您的代碼有問題

    public IActionResult SendEmail(Contact contact)
    {
        var emailMessage = new MimeMessage();
        emailMessage.From.Add(new MailboxAddress("myname", "mymail@mail.com"));
        emailMessage.To.Add(new MailboxAddress("myname", "mymail@mail.com"));
        emailMessage.Subject = contact.Subject;
        emailMessage.Body = new TextPart("plain") 
        { 
         Text = String.Format("This visitor:{0} with this email:{1} Send this message:{2}", 
         contact.Name, contact.Email, contact.Message) 
        };

        using (var client = new SmtpClient())
        {
            client.Connect("smtp-mail.outlook.com", 587);
            client.Authenticate("myemail", "myemailpassword");
            client.Send(emailMessage);
            client.Disconnect(true);
        }
        return RedirectToAction("Index", "Home");
    }

另請訪問以下問題,這可能會對您有所幫助:

如何通過Gmail使用C#發送電子郵件

暫無
暫無

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

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