【问题标题】:Can MailKit be used for "Contact Me" form?MailKit 可以用于“联系我”表格吗?
【发布时间】:2017-01-18 04:49:41
【问题描述】:

我是 Web 编程新手,我正在使用 ASP.NET Core 制作网站。我正在尝试创建一个标准的“联系我”页面,用户可以在其中输入姓名、电子邮件、主题和消息。 ASP.NET Core 还没有System.Net.Mail,所以我不能用。

我看到 MailKit 可用于发送电子邮件,但无法弄清楚如何将其用于联系页面。我知道使用此代码

 using (var client = new SmtpClient ()) {
            client.Connect ("smtp.friends.com", 587, false);

            // Note: since we don't have an OAuth2 token, disable
            // the XOAUTH2 authentication mechanism.
            client.AuthenticationMechanisms.Remove ("XOAUTH2");

            // Note: only needed if the SMTP server requires authentication
            client.Authenticate ("joey", "password");

            client.Send (message);
            client.Disconnect (true);

我可以使用我的 SMTP 服务器发送电子邮件,但显然我希望使用该站点的用户能够向我发送电子邮件。有没有办法为此使用 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");
    }

【问题讨论】:

    标签: c# asp.net-mvc email asp.net-core-1.0 mailkit


    【解决方案1】:

    是的,MailKit 可用于此目的。

    您看到的问题是因为 Outlook.com 正在用您的电子邮件地址替换您的 From 标头(这是您通过 SMTP 登录时 Outlook.com 的“功能”)。

    您可以通过将 ReplyTo 设置为用户的地址来解决这个问题(这样您就可以回复他们)。

    或者您可以尝试将 From 设置为用户的地址并将 Sender 设置为您的地址(不确定这是否可行)。

    【讨论】:

    • 我尝试将发件人设置为我的地址,但这似乎不起作用。我决定尝试改用 yahoo smtp 服务器,但现在它给了我一个错误,说我的“发件人地址”未经验证。 “发件人”是outlook而stmp服务器是yahoo有关系吗?如果我将雅虎电子邮件硬编码到“发件人”部分,它就可以工作。
    • 这是 SMTP 服务器的一项功能,可最大程度减少垃圾邮件。除了尝试另一台服务器之外,我没有什么可以建议的。
    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 2019-02-03
    • 2010-10-25
    • 2016-10-24
    • 2018-11-26
    • 2021-07-15
    • 2020-06-05
    相关资源
    最近更新 更多