【问题标题】:Why does creating contact forms require a password? [closed]为什么创建联系表格需要密码? [关闭]
【发布时间】:2017-02-17 14:20:41
【问题描述】:

所以我希望在我的网站上有一个联系表,人们可以在其中输入消息并发送它,消息会发送到我的收件箱。

但是每次我在网上看到他们我都会看到这个:

 System.Net.NetworkCredential("yourEmail@gmail.com", "YourPassword");

为什么我需要提供密码?当您向某人发送常规电子邮件时,您不需要他们的密码。

我也有安全问题。好的,它在一个 .cs 文件中,但我仍然不喜欢在那里以纯文本形式看到我的密码。

另外,如果是大公司呢? ebay 是否有纯文本密码?这是我怀疑的事情。其他人是怎么做到的?

【问题讨论】:

  • 在你对我的问题投反对票之前,你能至少告诉我你投反对票的原因吗?如果这是一个愚蠢的问题,请告诉我,但答案对我来说并不明显

标签: c# asp.net contact-form


【解决方案1】:

这是因为您有自己的 SMTP 中继和自己的凭据。

因此,在您设置邮件程序时,您需要指定对电子邮件地址的回复。

下面是一个如何做的工作示例

var m = new MailMessage { Subject = txtSubject.Text, IsBodyHtml = true, Body = emailOpeningLine + txtMessage.Text };

            try
            {
                m.To.Add(new MailAddress("to");
                m.From = new MailAddress("senders email address");
                m.ReplyToList.Add("senders email address");
                foreach (var attachment in Attactments)
                {
                    m.Attachments.Add(new Attachment(attachment));
                }
                client.Send(m);
                m.To.Clear();
                m.Attachments.Clear();

            }

            catch (SmtpException esException)
            {

            }
            catch (Exception ex)
            {


            }

关于您的其他问题,您可以将密码保存在数据库中,但请记住对其进行加密。

【讨论】:

  • 谢谢。明天我会试试你的例子,因为我现在暂时休息一下。我会告诉你它是否有效
  • 不用担心 :) m
【解决方案2】:

你绝对不想要用户密码。

但要让您的联系表单能够发送邮件,它需要由有效的电子邮件客户端发送。例如,您想为您的邮件使用 gmail 服务器,您需要提供您的凭据。

至于您问题的第二部分,请不要将这些纯文本存储在代码中。您可以轻松地从 app.config / web.config 访问那些

(例如参见:Embed credentials for webclient in C# Console Application app.config?

【讨论】:

  • 谢谢。我将您的答案标记为答案,因为您回答得最快,并向我展示了如何将文本移动到 web.config
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
  • 2020-04-22
  • 2013-06-27
  • 2020-05-03
  • 1970-01-01
相关资源
最近更新 更多