首页 > 代码库 > 发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!

发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!

附件大,上传,发送一定会慢.程序卡,应该是主线程正在发送,邮件造成的.创建其他线程在后台去发.这样就不影响主线程做其他工作了
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            MailMessage MailMessage = new MailMessage();
            //这个是我们的邮件对象,包含主题,内容等主要属性
            SmtpClient SmtpServer = new SmtpClient();
            //这个是我们的SMTP客户端对象,通过这个对象将我们的邮件发送出去
 
 
            MailMessage.From = new MailAddress("240848@qq.com","网站邮件", System.Text.Encoding.UTF8);
            //例如xxx@163.com ‘MailMessage对象的From属性意为邮件的发送者,顾名思义在此处设置邮件的发件人.
            MailMessage.To.Add("7218@qq.com");
            //例如xxx@163.com ‘MailMessage对象的To属性意为该邮件的收件人集合,使用该属性的Add方法来添加收件人
            MailMessage.Subject = "大家好!~我是邮件标题";
            //Subject属性就是邮件的标题内容
            //MailMessage.Body = "大家好!~我是邮件内容" ‘Body属性是邮件的内容
            MailMessage.Priority = MailPriority.Normal;
            //Normal是普通优先级,这里还可以设置成High或Low
            SmtpServer.Host = "SMTP.qq.com";
            //这里设置我们的SMTP服务器,例如smtp.163.com
            SmtpServer.Credentials = new System.Net.NetworkCredential("9520848""nnnnnnnnnnnnn");
            //这里的用户名和密码用于SMTP服务器认证
            //SmtpServer.Timeout = 100 ‘设定发送超时的时间,默认是100秒
 
            MailMessage.Attachments.Add(new Attachment("c:\\网页.txt"));
            MailMessage.Attachments.Add(new Attachment("G:\\Ultt_SC17.rar"));
            MailMessage.Body = "111111111111";
 
            SmtpServer.Send(MailMessage);
        }
    }
}

发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!