-2

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

我已经编写了代码来允许这样做,但我也想很好地格式化我将与用户的电子邮件和组织一起发送的电子邮件(如果他们提供的话)。我的问题是,我可以或应该使用“默认”电子邮件地址让我的服务技术人员知道没有与表单关联的电子邮件吗?我怀疑答案只是我们在我公司达成的共识,但是开发社区中的“每个人”都使用默认的无用户输入电子邮件地址这样的事情吗?有点像“ 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 警报我们联系方式。

4

2 回答 2

3

从用户体验的角度来看,我认为在 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.
于 2013-05-01T21:55:12.513 回答
1

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

于 2013-05-01T21:41:52.000 回答