使用 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 发送电子邮件而不在代码中显示我的密码的主要内容,如果未能解决你的问题,请参考以下文章