0

我已经使用 SMTP 实现了要发送到用户 Outlook 收件箱的自动电子邮件。使用备用视图同时发送日历约会。还有一个 html 图标,可以双击它在浏览器中打开 html 文件。我现在使用相同的代码,但使用交换服务器并且结果不同。行为不同,但仍然使用相同的代码!使用交换时是否有某些功能被阻止?我怎样才能解决这个问题并获得相同的结果?

仅使用 SMTP 的屏幕截图:

在此处输入图像描述

仅使用 SMTP 的代码:

//Message

MailMessage msg  = new MailMessage();
mailMessage.From = new MailAddress("from@test.com");
mailMessage.To.Add(new MailAddress("to@test.com"));
mailMessage.Subject = "Subject";



//Calendar

System.Net.Mime.ContentType ctCal = new System.Net.Mime.ContentType("text/calendar");
ctCal.Parameters.Add("method", "REQUEST");
AlternateView calendarView =
AlternateView.CreateAlternateViewFromString(GetCalendarEvent(mailMessage, "Test",
"REQUEST", strReviewByDate, strReviewByDate, "").ToString(), ctCal);
mailMessage.AlternateViews.Add(calendarView);



//Read Html file.

String filePath =  "C:\\Path\\To\\File.html";
StreamReader sr = File.OpenText(strFilePath);
String body = sr.ReadToEnd(); 
sr.Close();


//I make other changes to the html file here//


//Save Html file

FileStream fs = File.OpenWrite("C:\\Path\\To\\EditedFile.html");
StreamWriter writer = new StreamWriter(fs, Encoding.UTF8);   
writer.Write(strBody);
writer.Close();


//Add Attachment to message

mailMessage.Attachments.Add(new Attachment("C:\\Path\\To\\EditedFile.html"));


//Send the email

SmtpClient smtpClient = new SmtpClient("127.0.0.1", 25);
smtpClient.Send(mailMessage);

更改为与 Exchange 一起使用后的屏幕截图:

在此处输入图像描述

与 Exchange 一起使用的代码更改:

从上述代码更改为与 exchange 一起使用的唯一代码位于以下行:

    SmtpClient smtpClient = new SmtpClient("exchange.test.example.com", 25);
4

1 回答 1

0

iCal 必须是消息中唯一且唯一的 MIME 部分。如果您需要附件,则必须将其添加到 iCal MIME 部分(ATTACH 标头)。

于 2013-07-17T13:36:41.007 回答