快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰集团_龟发之家论坛



综合现在能查到的免费短信发送要领,在飞信今年未进级前,大年夜多是使用阐发出的飞信客户端协议来发送短信,

优点是速率快,应用简单!

后情因为飞信协议的进级,以及验证码问题,大年夜多的此类发送要领已经挂掉落了,

网上也有关于使用google日历来变相进行短信发送的措施,

还有便是使用139邮箱,实际上不仅仅是139邮箱,189,yahoo等很多邮箱办事商都供给短信看护功能!

本日在首页又看到一篇文章使用139邮箱来进行短消息发送,随后自己测试了下189邮箱,下面将封装一个类来实现此功能

首先,在用smtp 发信测试的时刻,发明 139,189等邮箱的smtp办事器不兼容.net smtp类的邮件发送,然则outlook等一些软件可以正常应用

关于.net smtpclient类不能发送139,189邮件办事器的问题也有人抓包阐发了,是由于这2个邮件办事器对付一个敕令解析的不兼容,在此不多说了!有兴趣可以google查下!

言规正传,既然这种变相的短信发送要领,是使用邮件办事商供给的一个新邮件短信提示功能,那么便是说我的支持短信提示的邮箱只要收到信邮件,就会由邮件办事商向

我们事先设置的手机发送新邮件提示, 139,189邮箱非别是移动和电信的手机邮箱,以是默认是跟手机账号关联的,yahoo邮箱则可以自行设置手机账号,详细的邮箱接管短信

的设置必要根据邮箱支持的功能自行设定,这里不多说清楚明了,贴下189的短信提示设置:

清楚了上面这层道理,那我们就直接来写代码了,这里阐明下:为了简化操作,这里应用。net smtpclient来发信,

以是设置设置设备摆设摆设smtp发送的时刻不支持的是无法应用的,着实设置设置设备摆设摆设一样平常的支持smtp发送邮件的就行,我会给出用QQ邮箱发信的测试用例!

以下简单的封装,经由过程SmtpClient来给能够进行短信提示的邮箱发送新邮件,已达到变相短信提示目的!

public class SmsAPI : IDisposable

{

#region fields

///

/// System.Net.Mail.SmtpClient工具

///

static SmtpClient _smtp;

SmtpConfig _config;

///

/// 是否已开释过资本

///

bool disponsed = false;

///

/// 异步发送完成事故

///

event EventHandlerSendInfo> _event;

///

///

///

object objectLock = new Object();

#endregion

#region delegates/events

///

/// 异步发送完后触发的事故

///

public event EventHandlerSendInfo> SendCompleted

{

add

{

lock (objectLock)

{

_event += value;

}

}

remove

{

lock (objectLock)

{

_event -= value;

}

}

}

#endregion

#region methods

///

/// 构造函数

///

///

Smtp的xml设置设置设备摆设摆设文件

public SmsAPI(string xmlpath)

{

if (!File.Exists(xmlpath))

throw new FileNotFoundException("error:not found configxml file");

using (FileStream fs = new FileStream(xmlpath, FileMode.Open, FileAccess.Read))

{

XmlSerializer xs = new XmlSerializer(typeof(SmtpConfig));

_config = xs.Deserialize(fs) as SmtpConfig;

InitSmtp(_config.Host, _conf澳门新葡亰集团ig.Port, _config.Sll, _config.User, _config.Password); /*初始化SMTPCLIENT工具*/

fs.Close();

}

}

///

/// 构造函数

///

///

SMTP办事器

///

SMTP用户名

///

SMTP密码

public SmsAPI(string host, string user, string password)

: this(host, 25, false, user, password)

{

}

///

/// 构造函数

///

///

SMTP办事器

///

SMTP端口

///

是否应用SLL

///

SMTP用户名

///

SMTP密码

public SmsAPI(string host, int port, bool ssl, string user, string password)

{

InitSmtp(host, port, ssl, user, password);/*初始化SMTPCLIENT工具*/

}

///

/// 初始化SMTP工具

///

///

SMTP办事器

///

SMTP端口

///

是否应用SLL

///

SMTP用户名

///

SMTP密码

private void InitSmtp(string host, int port, bool ssl, string user, string password)

{

if (host == null || host.Length == 0)

throw new ArgumentNullException("error:host is null");

if (port0 || port > 65534)

throw new ArgumentException("error:po澳门新葡亰集团rt (0~65534)");

_smtp = new SmtpClient();

_smtp.SendCompleted += new SendCompletedEventHandler(SendCompletedProc);//设置SmtpClient工具的SendCompleted事故

_smtp.Host = host;

_smtp.Port = port;

_smtp.EnableSsl = ssl;

_smtp.Credentials = new NetworkCredential(user, password);

_config = new SmtpConfig(host, port, ssl, user, password);//实例一个SmtpConfig工具

}

///

/// SmtpClient.SendCompleted 事故的绑定函数

///

//澳门新葡亰集团/

///

void SendCompletedProc(object sender,AsyncCompletedEventArgs e)

{

SendInfo info = e.UserState as SendInfo;

info.Ex = e.Error;//这里设置info工具的Ex属性

if(_event!=null)

_event(null, info); //事故送达给上层调用

}

///

/// 实现IDisponse接口Disponse措施

///

public void Dispose()

{

Disponse(true);

GC.SuppressFinalize(this);

}

///

/// 资本开释

///

///

protected virtual void Disponse(bool dispons澳门新葡亰集团eing)

{

if (!disponsed)

{

if (disponseing)

{

//开释受控资本

_smtp = null;

_config = null;

}

//开释非受控资本

}

disponsed = true;

}

///

/// 发送邮件

///

///

邮件工具

public void Send(MailMessage _mail)

{

try

{

_smtp.SendAsync(_mail, new SendInfo(_mail.To[0].ToString(), DateTime.Now,null));

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

}

///

/// 发送邮件

///

///

发件人

///

///

主题

///

正文

public void Send(string from, string t澳门新葡亰集团o, string subject, string body)

{

try

{

MailMessage _mail = new MailMessage();

_mail.From = new MailAddress(from);

_mail.To.Add(new MailAddress(to));

_mail.Subject = subject;

_mail.IsBodyHtml = true;

_mail.Body = body;

_smtp.SendAsync(_mail, new SendInfo(to, DateTime.Now,null));

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

}

///

/// get appdomain base directory

///

///

public static string AppDirectory()

{

return AppDomain.CurrentDomain.BaseDirectory;

}

///

/// XML序列化SmtpConfig工具

///

///

文件名

public void SaveConfig(string fileName)

{

if (fileName == null || fileName.Length == 0)

fileName = "smsapi.xml";

string xmlpath = Path.Combine(AppDirectory(), fileName);

using(StreamWriter sw=new StreamWriter(xmlpath,false,System.Text.Encoding.Default))

{

XmlSerializer xs = new XmlSerializer(typeof(SmtpConfig));

xs.Serialize(sw, _config);

sw.Close();

}

}

#endregion

}

///

/// 发送信息

///

public class SendInfo:System.EventArgs

{

public SendInfo(string _to, DateTime _time,Exception _ex)

{

this.To = _to;

this.Time = _time;

this.Ex = _ex;

}

///

/// 接管用户

///

public string To

{

get;

set;

}

///

/// 发送光阴

///

public DateTime Time

{

get;

set;

}

///

/// 发送孕育发生的非常

///

public Exception Ex

{

get;

set;

}

}

您可能还会对下面的文章感兴趣: