sendmail.aspx.cs

来自「MSMQ之使用範例程式」· CS 代码 · 共 87 行

CS
87
字号
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
using System.Net;
using System.Text;
using System.Messaging;
public partial class SendMail : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnSendMail_Click(object sender, EventArgs e)
    {
        //取出数据存入MailInfo对象
        MailInfo info = new MailInfo();
        info.Title = tbTitle.Text;
        info.Content = tbContent.Text;
        info.StmpServer = tbSmtpServer.Text;
        info.Sender = tbSender.Text;
        info.SenderPwd = tbSenderPwd.Text;
        info.ReceiveAddress = tbReceive.Text;

        if (info != null)
        {
            CreateQueue();
            SendMessage(info);
        }
    }

    /// <summary>
    /// 通过Create方法创建使用指定路径的新消息队列
    /// </summary>
    private void CreateQueue()
    {
        try
        {
            if (!MessageQueue.Exists(".\\myMailQueue"))
            {
                MessageQueue.Create(@".\private$\myMailQueue", true);
            }
        }
        catch (MessageQueueException e)
        {
            this.tdError.InnerText = e.Message;
        }
    }

    /// <summary>
    /// 连接消息队列并发送消息到队列
    /// </summary>
    private void SendMessage(MailInfo info)
    {
        try
        {
            //连接到本地的队列
            MessageQueue myQueue = new MessageQueue(".\\private$\\myMailQueue");

            Message myMessage = new Message();
            myMessage.Body = info;
            myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(MailInfo) });

            MessageQueueTransaction myTransaction = new MessageQueueTransaction();
            //启动事务
            myTransaction.Begin();
            //发送消息到队列中
            myQueue.Send(myMessage, myTransaction);
            //提交事务
            myTransaction.Commit();
            this.tdSucces.InnerText = "消息发送成功!";
        }
        catch (ArgumentException e)
        {
            this.tdError.InnerText = "发送失败,失败原因:" + e.Message;
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?