猿问

您好,使用C# 如何编写一个发送邮件程序呢?

这是代码
MailMessage msg = new MailMessage();

msg.To.Add("b@b.com");
msg.CC.Add("c@c.com");

msg.From = new MailAddress("a@a.com", "AA", System.Text.Encoding.UTF8);

msg.Subject = "这是测试邮件";
msg.SubjectEncoding = System.Text.Encoding.UTF8; 
msg.Body = "邮件内容";
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;
msg.Priority = MailPriority.High; 

SmtpClient client = new SmtpClient();
client.Host = "localhost";
object userState = msg;
try
{
client.SendAsync(msg, userState);
//client.Send(msg); 
MessageBox.Show("发送成功");
}
catch (System.Net.Mail.SmtpException ex)
{
MessageBox.Show(ex.Message, "发送邮件出错");
}

为什么我使用client.SendAsync(msg, userState);的时候会报成功,但是邮箱不会收到邮件?
使用client.Send(msg); 的时候就报失败,说是无法连接到远程服务器

我的本意是使用企业内部的服务器给员工发送这些邮件。

是不是需要做什么设置?还是我有写错什么东西了

慕勒3428872
浏览 273回答 2
2回答

人到中年有点甜

 SendAsync 这个方法是异步的。不可能报错的。 我给你个例子吧 刚好我最近也在写。SmtpClient smtp = new SmtpClient();MailMessage mm = new MailMessage();smtp.Host = "smtp.163.com";//这里填你自己用的邮箱的 服务器。163的就是这个。 qq 的是 smtp。qq。com 其他的 要自己去查smtp.Port = 25;smtp.Credentials = new System.Net.NetworkCredential("用户名", "密码");mm.Body = ConvertXMLString.BuilderToXML(bParam.SendMsg);mm.Subject = "你好";MailAddress ma = new MailAddress(收件人地址);mm.To.Add(ma);mm.From = new MailAddress("你自己的邮箱");smtp.Send(mm);

BIG阳

private void send_Click(object sender, System.EventArgs e) { string ServerStr ="mail.china.com"; try { SmtpMail.SmtpServer = ServerStr; MailMessage aMessage = new MailMessage ( ) ; //新建一个MailMessage对象 aMessage.From = TBfrom.Text ; //定义发信人地址,如果是多人,可以用","分开 aMessage.To = LBto.Text ; //定义收信人地址,如果是多人,可以用","分开 aMessage.Cc = CCTextBox.Text ; //定义抄送人地址,如果是多人,可以用","分开 aMessage.Bcc = BCCTextBox.Text ; //定义暗送人地址,如果是多人,可以用","分开 aMessage.Subject = SubjectTextBox.Text ; //定义邮件的主题 aMessage.Body = TBbody.Text ; //定义邮件的内容 if ( AttachmentTextBox.Text.Length > 0 ) aMessage.Attachments.Add ( new MailAttachment ( AttachmentTextBox.Text.Trim() , MailEncoding.Base64 ) ) ; //给邮件增加一个附件 SmtpMail.Send ( aMessage ) ; Response.Write("<Script language=javaScript>alert('电子邮件已经发送到-> + LBto.Text !');</Script>"); } catch ( Exception ex ) { Response.Write("<Script language=javaScript>alert('发送失败!');</Script>"); } } /////////////////////////////////////// 添加附件按钮代码 private void BTNadd_Click(object sender, System.EventArgs e) { AttachmentTextBoxa.Items.Add(Fadd.Value); AttachmentTextBox.Text=Fadd.Value; }
随时随地看视频慕课网APP
我要回答