首先在系统设置中的配置邮件的地方,配置发件人邮件和密码,把密码的加密功能去掉,
将红框中的代码注释,取消密码的加密功能
将密码换成发件人所在邮箱服务器的客户端授权码,配置客户端授权码,以163邮箱为例
发送邮件功能的介绍
发送带有附件的邮件,在发送邮件的代码中添加如下代码
1、要获取文件的路径,并将文件的路径存到集合中
2 发送邮件
public static bool SendEmailWithFile(aSYSMailServer item, string mailTo, string mailSubject, string mailContent, string UserName, List<string> fileArray)
item为系统设置中的发件人的信息,mailto为收件人,mailSubject为主题,mailContent为正文内容,UserName为当前登录的用户,fileArray为附件在服务器中的路径的集合
public static bool SendEmailWithFile(aSYSMailServer item, string mailTo, string mailSubject, string mailContent, string UserName, List<string> fileArray)
{
try
{
if (mailTo == "") {return false;}
string smtpServer = item.SMTPServer; //SMTP服务器
string mailFrom = item.Mail; //登陆用户名
//加密乱码了,暂时不用
//byte[] byteRC4Array = System.Text.Encoding.Default.GetBytes(item.PassWord);
//byte[] byteArray = Govaze.Components.Module.RC4Crypto.RC4.DecryptEx(byteRC4Array, "ly406@hotmail.com");
//string Password = System.Text.Encoding.Default.GetString(byteArray);
string userPassword = item.PassWord;//登陆密码
// 邮件服务设置
SmtpClient smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
smtpClient.Host = smtpServer; //指定SMTP服务器
smtpClient.EnableSsl = item.enableSsl.Trim().ToLower() == "true" ? true : false;//cfg.Network.enableSsl;
smtpClient.Port = item.Port;//cfg.Network.Port;
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码,此密码是客户端授权码
//smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, "XBKRLMWBMLRWYKKL");//用户名和密码
// 发送邮件设置
string[] mailTo1 = mailTo.Split(';');
try
{
MailMessage mailMessage = new MailMessage(mailFrom, mailTo1[0]);
mailMessage.From = new MailAddress(mailFrom);
for (int i = 1; i < mailTo1.Length; i++)
{
if (mailTo1[i] != "") { mailMessage.To.Add(mailTo1[i]); }
}
if (fileArray != null)
{
for (int i = 0; i < fileArray.Count; i++)
{
//为邮件创建文件附件
Attachment attr = new Attachment(fileArray[i], MediaTypeNames.Application.Octet);
//添加邮件时间戳信息
ContentDisposition conDispositon = attr.ContentDisposition;
conDispositon.CreationDate = System.IO.File.GetCreationTime(fileArray[i]);//文件的创建日期
conDispositon.ModificationDate = System.IO.File.GetLastWriteTime(fileArray[i]);//文件的修改日期
conDispositon.ReadDate = System.IO.File.GetLastAccessTime(fileArray[i]);//文件的读取日期
//给邮件添加附件
mailMessage.Attachments.Add(attr);
}
}
mailMessage.Subject = mailSubject;//主题
mailMessage.Body = mailContent;//内容
mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
mailMessage.IsBodyHtml = true;//设置为HTML格式
mailMessage.Priority = MailPriority.Normal;//优先级
smtpClient.Send(mailMessage); // 发送邮件
}
catch (SmtpException ex)
{
return false;
}
return true;
}
catch (SmtpException ex)
{
return false;
}
}