/// <summary>
/// 发送邮件
/// </summary>
/// <param name="from">发送人邮件地址</param>
/// <param name="fromname">发送人显示名称</param>
/// <param name="attendees">发送给谁(邮件地址)</param>
/// <param name="subject">主题</param>
/// <param name="body">内容</param>
/// <param name="meetingInfo">meetingInfo</param>
/// <param name="username">邮件登录名</param>
/// <param name="password">邮件密码</param>
/// <param name="server">邮件服务器</param>
public static int SendMail(string from, string fromname, List<string> attendees, string subject, string meetingInfo, string body, string username, string password, string server)
{
try
{
//邮件发送类
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
//是谁发送的邮件
mail.From = new System.Net.Mail.MailAddress(from,fromname,System.Text.Encoding.UTF8);
//发送给谁
foreach (string attendee in attendees)
{
mail.To.Add(attendee);
}
//是否HTML形式发送
mail.IsBodyHtml = true;
//标题
mail.Subject = subject;
//内容编码
mail.BodyEncoding = Encoding.UTF8;
//发送优先级
mail.Priority = System.Net.Mail.MailPriority.High;
//邮件内容
AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(body, null, "text/html");
//插入图片到正文
string filePath = AppDomain.CurrentDomain.BaseDirectory;
ContentType Jpeg = new ContentType();
Jpeg.MediaType = MediaTypeNames.Image.Jpeg;
LinkedResource lrImage = new LinkedResource(filePath + "Images/11floor.jpg", Jpeg);
lrImage.ContentId = "Email001";
LinkedResource lrImage_2 = new LinkedResource(filePath + "Images/17floor.jpg", Jpeg);
lrImage_2.ContentId = "Email002";
LinkedResource lrImage_3 = new LinkedResource(filePath + "Images/email.png", Jpeg);
lrImage_3.ContentId = "Email003";
htmlBody.LinkedResources.Add(lrImage);
htmlBody.LinkedResources.Add(lrImage_2);
htmlBody.LinkedResources.Add(lrImage_3);
mail.AlternateViews.Add(htmlBody);
//邮件服务器和端口
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(server);
//指定发送方式
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//指定登录名和密码
smtp.Credentials = new System.Net.NetworkCredential(username, password);
smtp.UseDefaultCredentials = true;
smtp.EnableSsl = false;
//添加Calendar文件
System.Net.Mime.ContentType contype = new System.Net.Mime.ContentType("text/calendar");
contype.Parameters.Add("method", "REQUEST");
contype.Parameters.Add("charset", "UTF-8");
System.Net.Mail.AlternateView avCal = System.Net.Mail.AlternateView.CreateAlternateViewFromString(meetingInfo, contype);
mail.AlternateViews.Add(avCal);
//超时时间
smtp.Timeout = 100000;
smtp.Send(mail);
mail.Dispose();
smtp.Dispose();
}
catch (Exception exp)
{
Console.Write(exp);
return 0;
//throw exp;
}
return 1;
}
/// <summary>
///
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="attendees">参与人</param>
/// <param name="organizer">组织者</param>
/// <param name="subject">主题</param>
/// <param name="description">介绍</param>
/// <param name="guid">stmp</param>
/// <param name="location">地点</param>
/// <returns></returns>
public string BuildIcsFormatString(DateTime startTime, DateTime endTime, ICollection<string> attendees, string organizer,
string subject, string description, string guid, string location)
{
System.Text.StringBuilder sw = new System.Text.StringBuilder();
sw.AppendLine("BEGIN:VCALENDAR");
sw.AppendLine("VERSION:2.0");
sw.AppendLine("METHOD:REQUEST");
sw.AppendLine("X-MS-OLK-FORCEINSPECTOROPEN:TRUE");
sw.AppendLine("BEGIN:VTIMEZONE");//声明时区
sw.AppendLine("TZID:"+ TimeZoneInfo.Local);//所在时区
sw.AppendLine("BEGIN:STANDARD");
sw.AppendLine("DTSTART:16010101T000000");
sw.AppendLine("TZOFFSETFROM:+0800");
sw.AppendLine("TZOFFSETTO:+0800");
sw.AppendLine("END:STANDARD");
sw.AppendLine("END:VTIMEZONE");
sw.AppendLine("BEGIN:VEVENT");//开始事件
if (attendees != null)
{
foreach (string attendee in attendees)
{
sw.AppendLine("ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:" + attendee);//写入参加者
}
}
sw.AppendLine("CLASS:PUBLIC");
sw.AppendLine(string.Format("CREATED:{0:yyyyMMddTHHmmssZ}", DateTime.Now));//获取创建时间
sw.AppendLine("DESCRIPTION:" + description);//获取描述
sw.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmss}", endTime));//写入课程结束时间
sw.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmss}", startTime));//写入课程开始时间
sw.AppendLine("ORGANIZER;CN=\"NLU, Service (Northern Lights)\":mailto:" + organizer);//写入组织者
sw.AppendLine("SEQUENCE:0");
sw.AppendLine("UID:" + guid);
sw.AppendLine("LOCATION:" + location);//写入会议地点
sw.AppendLine("SUMMARY;LANGUAGE=en-us:" + subject);//写入主题
sw.AppendLine("BEGIN:VALARM");//会议提醒
sw.AppendLine("ACTION:DISPLAY");
sw.AppendLine("DESCRIPTION:Reminder");
sw.AppendLine("END:VALARM");
sw.AppendLine("END:VEVENT");
sw.AppendLine("END:VCALENDAR");
return sw.ToString();
//ICS拼写完成并返回
}