用户未提供的默认电子邮件地址

时间:2013-05-01 21:39:34

标签: c# asp.net

我正在为ASP.NET中的公司编写在线RMA表单。他们非常谨慎地向客户询问过多信息,因此所有文本框复选框和下拉列表都是可选的,包括联系信息。我不认为这是明智的,但这是他们想做的事情。

我已经编写了允许这样做的代码,但我也希望能够很好地格式化我将通过用户的电子邮件和电子邮件发送的电子邮件。组织,如果他们提供。我的问题是,是否有"默认"电子邮件地址我可以或应该使用我的服务技术人员知道没有与表单相关的电子邮件?我怀疑答案只是我们公司在这里达成的一致意见,但有一个默认的非用户输入电子邮件地址,并且#34;每个人"在开发社区使用?有点像" lorem ipsum ..."作为电子邮件而不是文本的占位符的条目类型。

这是我做出决定的代码:

    var orgName = dv_contactInfo.Rows[2].Cells[1].Controls[0] as TextBox;
    var orgEmail = dv_contactInfo.Rows[11].Cells[1].Controls[0] as TextBox;
    MailMessage msg = new MailMessage { From = String.IsNullOrEmpty(orgEmail.Text) ? 
        new MailAddress("No email specified") :
        new MailAddress(orgEmail.Text)};
        msg.To.Add("service@mycompany.com");
        msg.Subject = orgName != null ? 
            "Service Request from " + 
            orgName.Text : 
            "Service Request from unspecified organization";

不出所料,new MailAddress("No email specified")会引发异常,因为它不是电子邮件形式。我也意识到这不是一个真正的编程问题,但我甚至不知道如何提出问题来尝试谷歌。

现在我已经考虑过了,我可能会查看电子邮件和电话条目以确保其中至少有一个已填写,如果我们无法启动,则会弹出Javascript警报联系他们强迫他们给我们联系方式。

2 个答案:

答案 0 :(得分:2)

从用户体验的角度来看,我认为在RMA表单上询问联系信息并不合理。

但是,有关原始问题的几点说明:

  • 不,实际上要发送的电子邮件没有 lorem ipsum 等价物。您永远不应该向邮件服务器发送已知的错误值。
  • 有一个先例可以使用“noreply@google.com”这样的地址来表明该地址不是用于双向通信,但这不是占位符;它仍然是一个功能性地址。
  • 通常的做法是为域名提供全能收件箱。这可能不适用于您的情况,但在技术上确实允许发送到不存在的地址。
  • 如果您想出占位符值,请不要使用电子邮件地址格式。否则,某些应用程序会自动将其转换为链接,有人可能会盲目地点击它认为它是真实的。
  • 如果客户未指定电子邮件,您可以指定要复制您的公司的特殊电子邮件地址。换句话说,您可以通知公司内的其他方,以便他们采取行动(如果需要)。

很简单的例子:

bool usingDefaultEmail = false;

if( email == null ){
    // get an email for your service department
    ConfigurationSettings.AppSettings["DefaultRmaEmailAddress"];
    usingDefaultEmail  = true;
}

// Logic here to append a warning to the body of the email that the customer
// didn't provide an email address. This way, someone knows that a higher-risk
// transaction has just occurred. They may also choose to contact the customer
// and verbally collect an email address.

答案 1 :(得分:1)

您应该在发送之前有条件地检查电子邮件是否存在。使用“占位符”值是不好的做法。