ASP.NET中实现邮件发送
来源:本站 时间:2010-05-18 点击:次
前几天做个东西,做到密码找回这里卡住了,因为要通过邮箱找回,以前没做过,不过幸好有msdn,在上面搜了个mail就出来了,呵呵,以下是源码:
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
//设置为Html格式的邮件
mail.IsBodyHtml = true;
//设置发件人地址
MailAddress fromMailAddress;
string[] tmpMails = txtFrom.Text.Split(",".ToCharArray());
if (tmpMails.Length == 2)
{
fromMailAddress = new MailAddress(tmpMails[0], tmpMails[1]);
}
else
{
fromMailAddress = new MailAddress(tmpMails[0], tmpMails[0]);
}
mail.From = fromMailAddress;
//设置收件人地址
MailAddress toMailAddress;
string[] tmpStrs = txtTo.Text.Split(";".ToCharArray());
foreach (string tmpStr in tmpStrs)
{
tmpMails = tmpStr.Split(",".ToCharArray());
if (tmpMails.Length == 2)
{
toMailAddress = new MailAddress(tmpMails[0], tmpMails[1]);
}
else
{
toMailAddress = new MailAddress(tmpMails[0], tmpMails[0]);
}
mail.To.Add(toMailAddress);
}
//设置邮件主题
mail.SubjectEncoding = Encoding.UTF8;
mail.Subject = txtSubject.Text;
//设置邮件正文
mail.BodyEncoding = Encoding.UTF8;
mail.Body = this.txtBody.Text;
//设置回复地址
mail.ReplyTo = fromMailAddress;
//添加附件
Attachment attachment = new Attachment(@"d:\temp\***.doc");
mail.Attachments.Add(attachment);
//设置SmtpClient
SmtpClient smtpClient = new SmtpClient(txtSmtpHost.Text, int.Parse(txtSmtpPort.Text));
try
{
smtpClient.UseDefaultCredentials = true;
//如果设为true,需要验证服务器安全连接
smtpClient.EnableSsl = false;
smtpClient.Credentials = new NetworkCredential("EmailAddress", "password");
smtpClient.Send(mail);
this.Literal1.Text = "<script>alert('发送所有邮件成功!')</script>";
//MessageBox.Show("发送所有邮件成功!");
}
catch (SmtpException ex)
{
this.Literal1.Text = "<script>alert('" + ex.Message + "')</script>";
//MessageBox.Show(ex.Message);
}
mail.Bcc="[email=[ft=#ff0000,,]kouzhikai@163.com";//]kouzhikai@163.com%22;//[/email]密送
mail.Cc=="kouzhikai@hotmail.com";//抄送
}