c# - 使用相同的 SMTP (C#) 发送电子邮件和传真时出错
问题描述
我目前正在研究一个从一些预定义设置自动生成文本的例程,并且应该以电子邮件或传真的形式发送该文本 - 甚至两者兼而有之。
代码如下所示:
SmtpClient smtp = new SmtpClient(Properties.Settings.Default.SmtpServer)
{
UseDefaultCredentials = true
};
if (IsMail)
{
var sendMail = "current users email";
using (MailMessage mm = new MailMessage(sendMail, this.EmailAddress))
{
mm.Subject = this.Subject;
if (!string.IsNullOrEmpty(this.MailBody))
{
mm.Body = this.MailBody.Replace("\n\n", "<br><br>");
mm.IsBodyHtml = true;
}
if (this.IsCcMail)
mm.CC.Add(sendMail);
foreach (var a in Attachments)
mm.Attachments.Add(a);
smtp.Send(mm);
}
}
if (IsFax)
{
var formatedFaxNo = this.CountryPhoneCode + FaxNo.TrimStart('0');
using (MailMessage mm = new MailMessage("current users email", formatedFaxNo + "@fax"))
{
mm.Subject = this.Subject;
if (!string.IsNullOrEmpty(this.MailBody))
{
mm.Body = this.MailBody.Replace("\n\n", "<br><br>");
mm.IsBodyHtml = true;
}
if (IsCcFax)
mm.CC.Add("current users fax" + "@fax");
if (ShowMessageYesNo(Translator.WouldYouLikeToSendTheFaxWithACoverSheet) != System.Windows.MessageBoxResult.Yes)
mm.Headers.Add("EMPTYBODYTEXT", "1");
else
{
var faxBody = Properties.Resources.FaxTemplate.ToString();
mm.Body = string.Format(faxBody,
Translator.Fax, formatedFaxNo,
Translator.From, "current users name",
Translator.Subject, this.Subject,
Translator.Date, DateTime.Now.ToShortDateString(),
this.MailBody?.Replace("\n\n","<br><br>"));
}
foreach (var a in Attachments)
mm.Attachments.Add(a);
smtp.Send(mm);
}
}
如果我想同时发送电子邮件和传真,则在应该发送传真时出现 SMTP 异常 - 电子邮件之前已成功发送。错误只读取
“发送邮件错误”
这不是很有帮助。
到目前为止,我已经尝试过:发送两封邮件而不是邮件和传真 - 按预期工作;同样发送两份传真 - 按预期工作;更改订单并在邮件之前发送传真 - 传真已发送,但发送邮件时出现 SMTP 异常;在发送邮件并为传真创建新邮件后处理 SmtpClient - 不会改变任何内容;
对我来说,我试图从中发送内容的 SMTP 服务器似乎存在问题,但我目前无法更改有关服务器的任何内容。
这里有没有人有任何进一步的建议我可以尝试解决这个问题?
解决方案
推荐阅读
- apache-spark - 使用 JdbcStorageHandler 从 Spark 读取 Hive 表时出错
- regex - 如何使用正则表达式捕获给定字符集中的文本
- go - 在golang中的if条件的基础上重写一个变量类型
- c# - 在服务器上接收和保存 Json 文件
- bash - bash提取列表文件并将它们分组到另一个文件中
- android - 旋转后工具栏后退按钮不起作用
- flutter-listview - 如何在列内显示列表视图?
- python - 模拟全局变量,在 Python 中连接到数据库
- c++ - OCI 19c - 解析包含 SELECT-FROM-INTO 语句的 PL/SQL 语句
- multithreading - 在 TidHTTPServer.OnCommandGet 内创建对象(带有计时器)失败