在ASP.NET中进行消息处理(MSMQ) 二
CreateQueue();
15 SendMessage(info);
16 }
17}
CreateQueue和SendMessage这两个方法完成消息队列的创建和发送信息到队列,MailInfo类封装的是邮件的详细信息(既邮件的属性),详细定义如下: 封装了邮件的属性 1public class MailInfo 2{ 3 public MailInfo() 4 { 5 6 } 7 8 private string _Title; 9 public string Title 10 { 11 get { return _Title; } 12 set { _Title = value; } 13 } 14 15 private string _Content; 16 17 public string Content 18 { 19 get { return _Content; } 20 set { _Content = value; } 21 } 22 private string _Sender; 23 24 public string Sender 25 { 26 get { return _Sender; } 27 set { _Sender = value; } 28 } 29 private string _SenderPwd; 30 31 public string SenderPwd 32 { 33 get { return _SenderPwd; } 34 set { _SenderPwd = value; } 35 } 36 private string _StmpServer; 37 38 public string StmpServer 39 { 40 get { return _StmpServer; } 41 set { _StmpServer = value; } 42 } 43 private string _ReceiveAddress; 44 45 public string ReceiveAddress 46 { 47 get { return _ReceiveAddress; } 48 set { _ReceiveAddress = value; } 49 } 50} 转到邮件管理端(MailServer.aspx),他负责从消息队列里读取出邮件信息并把此邮件发送到目标地址去。其实现很简单,说直接点他也就是完成了两项操作(从队列读消息、将消息发送到目的邮箱),从队列读取消息的代码如下: 1/**//// <summary> 2/// 连接消息队列并从队列中接收消息 3/// </summary> 4private MailInfo ReceiveMessage() 5{ 6 MailInfo info = null; 7 //连接到本地队列 8 MessageQueue myQueue = new MessageQueue(".\\private$\\myMailQueue"); 9 myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(MailInfo) }); 10 try 11 { 12 if (myQueue.Transactional) 13 { 14 MessageQueueTransaction myTransaction = new MessageQueueTransaction(); 15 //启动事务 16 myTransaction.Begin(); 17 //从队列中接收消息 18 Message myMessage = myQueue.Receive(myTransaction); 19 info = myMessage.Body as MailInfo; //获取消息的内容 20 myTransaction.Commit(); 21 return info; 22 } 23 24 } 25 catch (MessageQueueException e) 26 { 27 this.tdError.InnerText = e.Message; 28 } 29 return info; 30} 该方法(ReceiveMessage)返回的是从队列里读取到的邮件信息,本示例中只是做了读一条信息的实现,如果要把队列里的全部信息读出并发送到目的邮箱,可以参考我前面所介绍的相关知识点来实现。得到了邮件的详细信息,我们就可以使用相应的技术将这信息发送到目标邮箱去,本示例中我采用的是.NET Framework里提供的SmtpClient类来完成的邮件发送,关于SmtpClient类的使用网上有相当丰富的资料介绍,这里我就不做详细的说明,核心代码如下: 1protected void Button2_Click(object sender, EventArgs e) |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |