【发布时间】:2016-07-13 19:52:43
【问题描述】:
我有一个 C# 方法来发送电子邮件,我希望自动将不在办公室的电子邮件回复给发件人或回复给用户。这是我的代码,它不起作用。
我看到如果从 Outlook 发送,我会收到不在办公室的电子邮件回复,但是下面的代码有什么问题?
public void SendEmail()
{
SmtpClient client = new SmtpClient("my host server", 25);
var sender = "sender";
var to = "receiver";
var replyTo = sender;
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(sender);
msg.Subject = "Test auto reply from C#";
msg.To.Add(new MailAddress(to));
if (!string.IsNullOrWhiteSpace(replyTo))
{
msg.ReplyToList.Add(replyTo);
}
msg.Body = "This is from C# email server to test auto reply.";
client.Send(msg);
msg.Dispose();
}
catch (Exception ex)
{
}
finally
{
client.Dispose();
}
}
}
提前致谢。
【问题讨论】:
-
谁知道?您正在捕获并抑制所有可能的异常。没有充分的理由。 你遇到异常了吗?如果是这样,它可能已经告诉你出了什么问题。
-
@hvd 它没有引发任何异常,成功发送电子邮件,但如果收件人有任何外出自动回复,它不会进入发件人电子邮件。
-
@UtpalKumarDas 你是说它有效,但如果接收者有一个“不在办公室”的回复,它就不起作用?不要真正了解这与您的代码有何关系,或者为此发送电子邮件。也许检查接收者的收件箱设置。尝试使用相同的主机服务器从现有界面(Outlook、Gmail 等)发送电子邮件,看看电子邮件会发生什么。
-
问题已经解决,实际上我们使用了from(msg.From)地址noreply@domain,所以它没有发送到我们的目标发件人。现在我们使用 noreply@domain 作为 msg.Sender 和使用 msg.From 的目标发件人。