You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.5 KiB
85 lines
2.5 KiB
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;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|