发现用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);
}
}
}