C#发送电子邮件错误

six_shen_peng 2009-05-10 05:03:51

public int SendMessages(MessageModle message)
{
MailMessage mailMsg = new MailMessage();
mailMsg.BodyFormat = MailFormat.Text;
mailMsg.To = message.MessageToUrl;//收件人的邮箱地址
mailMsg.From = message.MessageFormUrl;//发件人的邮箱地址
mailMsg.Subject = message.MessageTheme;//邮件的主题
mailMsg.Body = message.MessageContent;//邮件的主题
mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");//是否有验证信息,一般需要验证
mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", message.MessageSendUserUserName);//发件人的邮箱姓名
mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",message.MessageSendUserUserPass);//发件人的邮箱密码
SmtpMail.SmtpServer = "www.163.com";//smpt服务器
try
{

SmtpMail.Send(mailMsg);
return 1;
}
catch (Exception err)
{
StreamWriter wr = new StreamWriter("c:\\test.txt");
wr.Write(err.Message);
wr.Close();
wr.Dispose();
return 0;
}


}
public MessageManager() { }
}

MessageModle是一个邮件的模型性类,结果为:ó?·t???÷μ?′?ê?á??ó꧰ü?£
...全文
65 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝶恋花雨 2009-05-10
  • 打赏
  • 举报
回复
     //SmtpClient mclient = new SmtpClient();
//MailAddress from = new MailAddress("594455635@qq.com", "zouyan");
//MailAddress to = new MailAddress("912991725@qq.com");//收信人地址
//MailMessage msg1 = new MailMessage(from, to);
//msg1.Subject = "VIVI新娘Club贵宾会员详细信息";
//msg1.IsBodyHtml = true;
//msg1.BodyEncoding = Encoding.UTF8;
//msg1.Body = "<html><head><style type='text/css'>#mytable {width: 100%;padding: 0;margin: 0;}th {color: #4f6b72;border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;border-top: 1px solid #C1DAD7;letter-spacing: 2px;text-transform: uppercase;text-align: left;padding: 6px 6px 6px 12px;background: #CAE8EA no-repeat;font-family: 宋体, Arial;font-size: 18px;} td {border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;background: #fff;font-family: 宋体, Arial;font-size: 16px;padding: 6px 6px 6px 12px;color:black;}</style></head><body>" +
// "<b>VIVI新娘Club贵宾会员详细信息:</b><br/><br/>" +
// "<table border='1' id='mytable' cellspacing='0' cellpadding='0'><tr><th nowrap >特惠活动代码</th><th nowrap>贵宾姓名</th><th nowrap>手机号码</th><th nowrap>固定电话</th><th>QQ</th></tr>" +
// "<tr><td nowrap>" + Request["ipNo"].Trim() + "</td>" +
// "<td nowrap>" + Request["ipName"].Trim() + "</td>" +
// "<td nowrap>" + Request["ipMobilePhoto"].Trim() + "</td>" +
// "<td nowrap>" + guding + "</td>" +
// "<td nowrap>" + Request["ipQQ"].Trim() + "</td></tr>" +
// "<tr><th>MSN</th><th>电子邮件</th><th nowrap>邮政编码</th><th colspan='2'>地址</th></tr>" +
// "<tr><td nowrap>" + msn + "</td>" +
// "<td nowrap><a href='mailto:" + Request["ipEmail"].Trim() + "'>" + Request["ipEmail"].Trim() + "</a>" + "</td>" +
// "<td nowrap>" + post + "</td>" +
// "<td nowrap colspan='2'>" + address + "</td></tr> </table></body></html>";
//mclient.Send(msg1);
//Page.RegisterStartupScript("", "<script>alert('信息填写完毕,稍后我们会尽快与您联系。');window.location.href='ClubMember.aspx';</script>");
目录 1 前沿 1 1.1课题背景 1 1.2课程设计目的 2 1.3课程设计基本任务 2 2 设计平台简介 3 3、设计原理 4 3.1 软件总体架构 4 3.2 程序功能框架图 4 3.3 SMTP协议研究与分析 5 3.4 环境说明 6 4.详细设计 7 4.1窗体界面控件设计 7 4.2 程序实现 8 5、系统的实现与测试 15 5.1 发送电子邮件程序主界面(带附件) 15 5.2接收界面(带附件) 15 6、结束语 17 参考文献 18 电子邮件发送程序的设计与实现 摘 要 电子邮件(简称E- mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。电子邮 件软件的最基本功能就是实现邮件的发送与接收,本课程设计完成电子邮件发送功能 实现。本程序是在了解RFC底层协议的SMTP协议和POP协议基础上,以VS 2005为开发平台,使用WebBrowser控件并使用C#编程语言从SMTP协议规定的底层命令做 起一步步的与服务器进行交互操作,最终实现发送邮件功能,其发送功能包括:简单邮 件的发送、带附件的邮件的发送发送次数的设置。文中深入讲解了SMTP的原理及电子 邮件发送程序的设计与实现方法。 关键词 电子邮件;SMTP;VS;C#编程;邮件发送 1 前沿 1.1课题背景 随着Internet的迅猛发展,电了邮件(E—Mall)已成为凼特网上非常流行、非常方便的 通信方式。电子邮件(简称E- mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。它是全 球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传 送,它是—个简易、快速的 方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送 到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务, E- mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。 电子邮件发送程序的发送方式有两种:第一种是本地计算机与用户所指定的发送邮件 服务器连接,然后通过发送邮件服务器将邮件传送到接收邮件的服务器,邮件中包含有 信件主题和内容等一系列信息;第二种是本地计算机直接与接收电子邮件的服务器相连 接,并将邮件送入收信者的邮箱中,电子邮件接收程序则只需要处理本地计算机与存在 电子邮件的服务器相连接,并通过帐号和口令从服务器中获取电子邮件,邮件中包含有 信件主题、内容和发送时间等。 电子邮件不是一种"终端到终端"的服务,是被称为"存贮转发式"服务。这正是电子信 箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随 时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对 方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受 时空限制。在这里,"发送"邮件意味着将邮件放到收件人的信箱中,而"接收"邮件则意味 着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的—个实体。 1.2课程设计目的 本课程设计的目的主要是学习在VS平台下围绕着电子邮件发送的编程与开发,应用软 件工程的开发过程,详细论述了SMTP的分析、设计及代码实现,最终实现一个具有能发 送简单邮件,发送带附件的邮件的邮件发送器。 1.3课程设计基本任务 (1)了解C#编程环境。 (2)了解SMTP协议的通信原理。 (3)功能模块的实现。包括发送简单邮件的实现、发送带附件的邮件的实现、设置 发送次数的实现及各种错误提示的实现。 (4)系统的实现与测试。包括编译后的C#程序和运行测试功能需求的实现。 2 设计平台简介 C#编程环境简介: 20世纪80年代以来,C/C++语言一直是使用最广泛的商业化开发语言。但在带来强大 控制能力和高度灵敏性的同时,其代价是相对较长的学习周期和较低下的开发效率,同 时对控制能力的滥用也给程序的安全性带来了潜在的威胁。C++语言过度的功能扩张也破 坏了面向对象的设计理念。因此,软件行业迫切需要一种全新的现代程序设计语言,他 能够在控制能力与生产效率之间达到良好的平衡,特别是将高端应用开发与底层平台访 问紧密结合在一起,并与Web标准保持同步,C#(读作C- Sharp)语言就是这一使命的承担着。 C#语言是从C/C++语言发展而来的,他汲取了包括C++、Java、Delphi在内的多种语言 精华,是一种简单易学、类型安全和完全面向对象的高级程序设计语言。它的设计目标 就是在继承C/C++强大功能的用时,兼有RAD(快速应用程序开发)语言的高效性。作为 .NET的核心编程语言,c#充分享受了CLR所提供的优势,能够与其他应用程序方便的集成 和交互。下面是对它几个突出特点的描
说到发送邮件发送,先提一下SMTP(呵呵,高手就跳过这一段吧!)。 SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 再简单介绍一下名称空间(NameSpace)System.Web.Mail类库里所提供的邮件发送的对象、属性和方法 (1)它有三个类:SmtpMail、MailMessage和MailAttachment。这三个对象本文的示例程序代码中都应用到了! 1. MailMessage ,提供属性和方法来创建一个邮件消息对象。(Provides properties and methods for constructing an e-mail message.) 2. MailAttachments – 提供属性和方法来创建一个邮件附件对象。(Provides properties and methods for constructing an e-mail attachment.) 3. SmtpMail – 提供属性和方法通过使用windows 2000 CDOSYS 的消息组件的联合数据对象来发送邮件消息)。(Provides properties and methods for sending messages using the Collaboration Data Objects for Windows 2000 (CDOSYS) message component) (2)各个类的属性。 1.先简单介绍SmtpMail的属性: SmtpServer -- SMTP的地址。 2.主要来介绍MailMessage对象的属性 From -- 发送邮件的地址 To -- 接受邮件的地址 Subject -- 邮件的标题 Priority -- 邮件的优先级(有效值为High,Low,Normal) Attachments -- 返回一个集合,代表附件 Bcc -- 密送地址 Cc -- 抄送地址 Body -- 获取或是设置电子邮件消息的内容 BodyFormat -- 获取或是设置MailFormat的枚举值,此值指定消息体邮件的格式(Html格式、Text格式) Bodyencoding -- 指定消息的编码方式编码(主要有Base64,UUencode) 其他几个不重要的省略。 随便提到密送和抄送的区别:密送就是你群发邮件时收邮件的人无法看到你发给了多少人以及他们的邮件地址,抄送就是群发邮件时收邮件的人则可以看到你发给了多少人以及他们的邮件地址。 (3)SmtpMail类的Send方法,它的目的就是发送邮件,有两个重载方法。 1. SmtpMail.Send("发送邮件的地址","接受邮件的地址","邮件的标题","邮件消息的内容") 这个方法很简单,不适合发送带附件的邮件。 2. SmtpMail.Send(MailMessage) 此方法复杂、灵活,适合发送附件,而且可以设置MailMessage对象的各种属性值。 如果我们用ASP.NET写一个邮件发送的程序,那么首先应该如何得到SMTP。有两种方法:第一种方法调用目前知名的邮件服务提供商的SMTP,比如新浪、搜狐、网易的免费电子邮箱的SMTP;第二种方法是自己装一个SMTP虚拟服务器,这个在安装IIS时一起装上去的(安装过程就省略了:-) )。 一、在ASP.NET利用知名的邮件服务提供商的SMTP来发送邮件 首先需要去他们的邮件站点上注册免费邮箱,因为你要使用邮件服务提供商的SMTP,他们需要对身份进行验证,这样可以避免产生大量的垃圾邮件。假设我们在新浪的邮件站点(mail.sina.com.cn)上注册了一个免费电子邮件,用户名是mysina,密码是chenjie.该帐号为虚构的,请使用自己注册的用户名称和密码代替。我们在新浪的邮件站点获知它的SMTP地址是:smtp.sina.com.cn。我们需要向scucj@126.com(我的邮箱地址)发送邮件。 那么利用ASP.NET(C#)发送邮件的核心代码如下: //核心代码开始 using System.Web.Mail; MailMessage objMailMessage; MailAttachment objMailAttachment; // 创建一个附件对象 objMailAttachment = new MailAttachment( "d://test.txt" );//发送邮件的附件 // 创建邮件消息 objMailMessage = new MailMessage(); objMailMessage.From = "mysina@sina.com";//源邮件地址 objMailMessage.To = "scucj@126.com";//目的邮件地址,也就是发给我哈 objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题 objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容 objMailMessage.Attachments.Add( objMailAttachment );//将附件附加到邮件消息对象中 //接着利用sina的SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本 //基本权限 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //用户名 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mysina") ; //密码 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "chenjie"); /如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 554 : Client host rejected: Access denied //SMTP地址 SmtpMail.SmtpServer = "smtp.sina.com.cn"; //开始发送邮件 SmtpMail.Send( objMailMessage ); //核心代码结束 二、在ASP.NET利用本机的SMTP虚拟服务器的SMTP来发送邮件 首先说一下SMTP配置。 (1)右键点击“SMTP虚拟服务器”选择“属性”->在“常规”选项卡中设置“IP地址(P)”,我设置的是192.168.1.100。 (2)选择“访问”选项卡,点击“中继”,选上“仅以下列表”(默认是被选上的),点击“添加”,在“单台计算机”中加入192.168.1.100。 提示,如果没有完成(2),则会出现大家常见的一种错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for scucj@126.com (友情提示一下:错误中的邮件地址有所不同) 然后开始核心代码,其实和方法(一)的差不多。与(一)的主要区别在于:1.SMTP的不同,2.objMailMessage.From中本方法可以随便填写,但是(一)中别随便填写那么利用ASP.NET(C#)发送邮件的核心代码如下: /核心代码开始 using System.Web.Mail; MailMessage objMailMessage; MailAttachment objMailAttachment; // 创建一个附件对象 objMailAttachment = new MailAttachment( "d://test.txt" );//发送邮件的附件 // 创建邮件消息 objMailMessage = new MailMessage(); objMailMessage.From = "mysina@sina.com";//源邮件地址 objMailMessage.To = "scucj@126.com";//目的邮件地址,也就是发给我哈 objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题 objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容 objMailMessage.Attachments.Add( objMailAttachment );//将附件附加到邮件消息对象中 //SMTP地址 SmtpMail.SmtpServer = "192.168.1.100"; //开始发送邮件 SmtpMail.Send( objMailMessage ); 以上两种方法介绍到这里。最简单的利用上面方法是在页面添加一个服务器按钮,把除引用的语句放到按钮单击事件中去。当然,别忘记了引用的语句放在最上面。 方法一的测试是完全正确,没有任何问题,但是方法二却导致邮件无法正确收到(***@sina.com),或者收到后也被放到垃圾邮件中去了(发往scucj@126.com)。
**ASP.NET基于C#电子邮件简单收发系统设计与实现** 本资源提供了一个使用ASP.NET框架和C#语言开发的电子邮件收发系统。该系统旨在提供一个简单易用的界面,让用户能够发送和接收电子邮件。系统采用模块化设计,具有良好的可扩展性和可定制性,可以根据用户需求进行二次开发。 **主要功能特点:** 1. **用户管理**:支持用户注册、登录和权限管理,确保系统的安全性。 2. **邮件发送**:用户可以通过系统内置的邮件编辑器发送文本、附件和HTML格式的邮件。支持群发功能,方便用户一次性向多个收件人发送邮件。 3. **邮件接收**:系统能够自动接收并存储用户邮箱中的新邮件。用户可以随时查看、回复、转发和管理收到的邮件。 4. **邮件搜索**:提供强大的邮件搜索功能,用户可以根据关键字、发件人、收件人、日期等条件快速查找邮件。 5. **个性化设置**:用户可以自定义自己的邮箱界面风格、字体大小和颜色等,打造个性化的使用体验。 6. **错误处理和日志记录**:系统对可能出现的错误进行捕获和处理,并将相关操作记录到日志文件中,方便开发人员进行维护和调试。 7. **数据库设计**:采用SQL Server数据库存储用户信息和邮件数据,确保数据的稳定性和安全性。同时提供了数据库备份和恢复功能,以防数据丢失。 8. **响应式设计**:系统界面采用响应式设计,能够在不同尺寸的设备上自适应显示,提高了用户体验。 9. **多语言支持**:系统支持中文和英文两种语言环境,可以根据用户的需求进行切换。 10. **API接口**:提供了开放的API接口,方便开发者进行二次开发和集成其他应用系统。 **适用场景:** 本系统适用于企事业单位、教育机构、政府部门等各类组织和个人用户。它可以作为内部沟通工具,提高工作效率;也可以作为对外联系的平台,展示组织形象和传递信息。同时,由于其良好的可扩展性和可定制性,本系统还可以根据具体需求进行二次开发,满足更复杂的应用场景。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧