使用 ASP.Net 发送电子邮件而不在代码中显示我的密码

Posted

技术标签:

【中文标题】使用 ASP.Net 发送电子邮件而不在代码中显示我的密码【英文标题】:Sending email using ASP.Net without revealing my password in the code 【发布时间】:2021-11-11 13:58:15 【问题描述】:

我的表单如下所示:

当点击发送按钮时,会调用以下代码:

protected void btnSend_Click(object sender, System.EventArgs e)
    
        // Command-line argument must be the SMTP host.
        SmtpClient client = new SmtpClient();
        // Specify the email sender.
        // Create a mailing address that includes a UTF8 character
        // in the display name.
        MailAddress from = new MailAddress(txtEmail.ToString().Trim(),
        txtName.ToString() + (char)0xD8,
        System.Text.Encoding.UTF8);
        // Set destinations for the email message.
        MailAddress to = new MailAddress("nyamathulani@gmail.com");
        // Specify the message content.
        MailMessage message = new MailMessage(from, to);
        message.Body = txtMsg.ToString();
        // Include some non-ASCII characters in body and subject.
        string someArrows = new string(new char[]  '\u2190', '\u2191', '\u2192', '\u2193' );
        message.Body += Environment.NewLine + someArrows;
        message.BodyEncoding = System.Text.Encoding.UTF8;
        message.Subject = txtSubject.ToString() + someArrows;
        message.SubjectEncoding = System.Text.Encoding.UTF8;
        // Set the method that is called back when the send operation ends.
        client.SendCompleted += new
        SendCompletedEventHandler(SendCompletedCallback);
        // The userState can be any object that allows your callback
        // method to identify this send operation.
        // The userToken is a string constant.
        string userState = "Thulani awaits your message";
        client.SendAsync(message, userState);
        btnSend.Text = "Sending...";

        // Clean up.
        message.Dispose();
    

]2我希望能够从 ASP.NET 网络表单发送电子邮件,而无需在代码中使用我的密码,因为我正在构建投资组合网站并需要使用我的个人电子邮件地址

【问题讨论】:

您的应用程序是如何托管的?预置?天蓝色? AWS?去吧爸爸?其他一些主机? 目前在本地服务器上,打算托管在 Github 页面或 Azure 上 使用 Azure,最好的办法是使用服务器端电子邮件发送并将您的凭据保存在 KeyVault 中。我还建议使用专用于此应用程序的电子邮件帐户。 @Fildor,如果这能解决我的问题,感谢您更新 顺便说一句,如果它只是一个“联系”表单,您绝对可以将其制作为带有表单的静态网页,并将数据发送到各种“html 表单到电子邮件”提供商之一,如果这就是它的全部。 【参考方案1】:

我认为无论如何您都必须在代码中输入密码,或者您必须手动设计,以便在发送电子邮件时输入密码。

【讨论】:

不,这不是必须做的,应该做。如果您不熟悉保护配置数据的不同选项,最好不要回答,而是将问题留给更熟悉此内容的其他人。 @Krishna 我已经更新了我的问题,以向您展示我想要实现的目标,您的建议不是解决方案,因为最终用户不得使用我的电子邮件和密码向我发送电子邮件 @mason 你熟悉这种技术吗 @ThulaniNyama 是的。最好的办法是听从 Fildor 的建议。 ^^ 如果您选择使用 Azure,那就是。但在其他云平台上,肯定有类似的概念来保​​护应用程序机密。

以上是关于使用 ASP.Net 发送电子邮件而不在代码中显示我的密码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用此脚本向多个人发送电子邮件而不在 to 字段中显示所有电子邮件?

在 Asp.Net 中使用电子邮件发送忘记密码

在 asp.net 中突出显示新记录

发送电子邮件 asp.net c#

使用c#在asp.net中发送邮件失败[重复]

从 C# Asp.net 向 Lync 发送消息