最近项目当中要加一个发邮件的功能,遂把发邮件的代码和遇到的问题解决方法记录下来。
public static void Raise<TEventArgs>(this TEventArgs e, Object sender, EventHandler<TEventArgs> eventDelegate)
where TEventArgs : EventArgs
{
EventHandler<TEventArgs> temp = Interlocked.CompareExchange(ref eventDelegate, null, null);
if (temp != null) temp(sender, e);
}
public class EmailEventArgs:EventArgs
{
private bool _isSuccess;
private string _message;
public EmailEventArgs(bool isSuccess, string message)
{
this._isSuccess = isSuccess;
this._message = message;
}
/// <summary>
/// 是否发送成功
/// </summary>
public bool IsSuccess { get { return _isSuccess; } }
/// <summary>
/// 返回的消息
/// </summary>
public string Message { get { return _message; } }
}
public class EmailHelper
{
private Boolean enableSsl = false;
private Int32 timeOut = 60000;
private Int16 port = 25;
private String host;
private String subject;
private String body;
private String fromEmail;
private String emailPassword;
private List<string> toEmail=new List<string>();
private List<string> attachAddress = new List<string>();
private Encoding subjectEncoding = Encoding.UTF8;
private Encoding bodyEncoding = Encoding.UTF8;