using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
namespace ShwasherSys
{
public class EmailSendHelper
{
public static int Port = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["EmailPort"]??"0");
public static string Host = System.Configuration.ConfigurationManager.AppSettings["EmailHost"];
public static string UserName = System.Configuration.ConfigurationManager.AppSettings["EmailUserName"];
public static string Password = System.Configuration.ConfigurationManager.AppSettings["EmailPassword"];
public static string Domain = System.Configuration.ConfigurationManager.AppSettings["EmailDomain"];
public static bool EnableSsl = System.Configuration.ConfigurationManager.AppSettings["EmailEnableSsl"] =="true";
public static bool UseDefaultCredentials = System.Configuration.ConfigurationManager.AppSettings["EmailUseDefaultCredentials"] =="true";
public static SmtpEmailSenderConfig _config = new SmtpEmailSenderConfig(Host,Port, UserName, Password, Domain, EnableSsl, UseDefaultCredentials);
///
/// 发送邮件(有问题此方法只能163的邮箱发送成功)
///
///
///
///
///
///
///
///
///
public static void SendEmail(string to,string subject,string body, string from="", string displayName="", bool isBodyHtml=false, MailPriority mailPriority = MailPriority.Normal, SmtpEmailSenderConfig smtpEmailSenderConfig=null)
{
MailMessage msg = new MailMessage();
msg.To.Add(to);
if (smtpEmailSenderConfig == null)
{
smtpEmailSenderConfig = _config;
}
from = string.IsNullOrEmpty(from) ? smtpEmailSenderConfig.UserName : from;
displayName = string.IsNullOrEmpty(displayName) ? smtpEmailSenderConfig.UserName : from;
msg.From = new MailAddress(from, displayName);
msg.Subject = subject;
msg.SubjectEncoding = Encoding.UTF8;
msg.Body = body;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = isBodyHtml;
msg.Priority = mailPriority;
SmtpClient client = new SmtpClient
{
UseDefaultCredentials = smtpEmailSenderConfig.UseDefaultCredentials,
Credentials = new NetworkCredential(smtpEmailSenderConfig.UserName, smtpEmailSenderConfig.Password),
Port = smtpEmailSenderConfig.Port,
Host = smtpEmailSenderConfig.Host,
EnableSsl = smtpEmailSenderConfig.EnableSsl,
Timeout = 10000,
DeliveryMethod = SmtpDeliveryMethod.Network
};
//senderAuthCode不是qq邮箱登录密码,需要在qq邮箱,设置>账户>smtp...,生成授权码
//QqMail:587(注意:465是无效的)
// "smtp.qq.com";
//经过ssl加密
//client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
try
{
client.Send(msg);
}
catch (Exception ex)
{
typeof(EmailHelper).LogError(ex);
}
}
}
public class SmtpEmailSenderConfig
{
public SmtpEmailSenderConfig()
{
}
public SmtpEmailSenderConfig(string host,int port,string userName,string password,string domain,bool enableSsl,bool useDefaultCredentials)
{
Host = host;
Port = port;
UserName = userName;
Password = password;
Domain = domain;
EnableSsl = enableSsl;
UseDefaultCredentials = useDefaultCredentials;
}
///
/// SMTP Host name/IP.
///
public string Host { get; set; }
///
/// SMTP Port.
///
public int Port { get; set; }
///
/// User name to login to SMTP server.
///
public string UserName { get; set; }
///
/// Password to login to SMTP server.
///
public string Password { get; set; }
///
/// Domain name to login to SMTP server.
///
public string Domain { get; set; }
///
/// Is SSL enabled?
///
public bool EnableSsl { get; set; }
///
/// Use default credentials?
///
public bool UseDefaultCredentials { get; set; }
}
}