using Apewer; using Apewer.Internals; using Apewer.Source; using System; using System.Collections.Generic; using System.Text; namespace Apewer.Network { /// <summary>简单邮件传输协议客户端。</summary> [Serializable] public sealed class MailClient : Record { [NonSerialized] private TextSet _ts = new TextSet(false); [NonSerialized] private bool _smtpssl = false; [NonSerialized] private int _smtpport = 25; /// <summary>构造函数。</summary> public MailClient() { } /// <summary>构造函数。</summary> public MailClient(string server, string user, string pass) { Server = server; User = user; Pass = pass; } /// <summary>服务器地址。</summary> [Column] public string Server { get { return _ts["Server"]; } set { _ts["Server"] = value; } } /// <summary>认证用户。</summary> [Column] public string User { get { return _ts["User"]; } set { _ts["User"] = value; } } /// <summary>认证密码。</summary> [Column] public string Pass { get { return _ts["Pass"]; } set { _ts["Pass"] = value; } } /// <summary>使用安全套接字层加密连接,默认不加密。</summary> [Column] public int SmtpPort { get { return _smtpport; } set { _smtpport = value; } } /// <summary>使用安全套接字层加密连接,默认不加密。</summary> [Column] public bool SmtpSsl { get { return _smtpssl; } set { _smtpssl = value; } } /// <summary>获取 JSON 文本。</summary> public override string ToString() { return Json.From(this).ToString(); } /// <exception cref="ArgumentException"></exception> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="InvalidOperationException"></exception> internal System.Net.Mail.SmtpClient ToInstance() { var credential = new System.Net.NetworkCredential(); credential.UserName = User; credential.Password = Pass; var instance = new System.Net.Mail.SmtpClient(); instance.Host = Server; instance.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; instance.Host = Server; instance.Credentials = credential; instance.EnableSsl = SmtpSsl; instance.Port = SmtpPort; return instance; } } }