我在用Set msg = Server.CreateObject("JMail.Message")时,一直报错,是不是在用这个对象前还需要其他的设置?
解决方案 »
- dropdownlist 控件绑定数据库连接不起。。。
- 想做一套学生证打印系统,请前辈指导下思路和需要用到的控件等,小弟先感谢了!
- asp.net ext 2.0.2 tree 树型菜单,为啥显示不出来了??
- asp 中怎么用MSchart 连接MYSQL数据库
- 字节流读取的问题
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (prov
- 1500分求ASP。NET+SQL网络考试系统,我是学生,要做毕业设计,[email protected] qq36931115
- 此问题一日不解决,吃喝不香,请达人们进来!HELP!!!!
- Asp.Net里如何处理一组多选复选框?
- ASP.NET 关于微信退款开发的问题
- 无耻之问: 在webform里,datagrid可否实现在线编辑功能?
- 关于日历控件,如何只让它显示本月的日期?
http://www.vchelp.net/vchelp/file2002_4/csmail.asp?type_id=99&class_id=2&cata_id=22&article_id=879
C#编程发送邮件如需转载请与作者联系 摘要 本文简单介绍SMTP协议以及如何用C#编程实现EMAIL发送。 一、SMTP协议简介1、 客户端通过服务器的25端口建立TCP/IP连接服务器端: 220 server.com Simple Mail Transfer Service Ready2、 客户端使用“HELO”命令标识发件人客户端:HELO server.com服务器端:250 server.com3、 客户端发送MAIL命令,服务器端以OK作为响应表明准备接收客户端: MAIL FROM: <[email protected]>服务器端: 250 OK4、 客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件客户端:RCPT TO: <[email protected]>服务器端:250 OK5、 协商结束后用命令DATA发送发送邮件客户端:DATA服务器端:354 Start mail input: end with <CRLF>.<CRLF>6、 客户端以.表示结束输入内容一起发送出去 客户端:Subject: <CRLF>内容<CRLF>.<CRLF>7、客户端用QUIT命令退出。 客户端:QUIT服务器端:250 server.com closing transmission channel 二、SMTP客户端程序代码:1、 用VS.NET新建一个C# WINDOWS应用程序项目,命名为SMTP。2、 在窗体上添加控件:一个按钮:设置属性name->btnsend;text->发送六个标签:分别提示服务器地址、发件人、收件人、主题、内容以及发送记录五个文本框:服务器地址txtsmtp、发件人txtfrom、收件人txtto、主题txtsub、内容txtmsg对应相应的标签放置。 一个列表框:lstlog 3、在程序开头添加以下名字空间: using System.Data;using System.Net;using System.Net.Sockets;using System.IO; 4、在 btnsend_Click 函数中添加代码 private void btnsend_Click(object sender, System.EventArgs e){ // 将鼠标形状改为漏斗状 Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; //定义变量 string Data; byte[] szData; string CRLF = "\r\n"; //创建与服务器25端口的连接 TcpClient SmtpServ = new TcpClient(txtsmtp.Text,25); lstlog.Items.Clear(); //显示服务器初始信息 NetworkStream NetStrm = SmtpServ.GetStream(); StreamReader RdStrm= new StreamReader(SmtpServ.GetStream()); lstlog.Items.Add(RdStrm.ReadLine()); //标志发件人 Data = "HELO server " + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); //标志发件人 Data = "MAIL FROM: " + "<" + txtfrom.Text + ">" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine( // 标志收件人 Data = "RCPT TO: " + "<" + txtto.Text + ">" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); //准备发送内容 Data = "DATA " + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); //发送主题 Data = "SUBJECT: " + txtsub.Text + CRLF ; //发送内容 Data = Data+ txtmsg.Text + CRLF ; //结束发送 Data = Data+ "." + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); //退出 Data = "QUIT " + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); //关闭连接 NetStrm.Close(); RdStrm.Close(); lstlog.Items.Add("连接关闭"); lstlog.Items.Add("发送成功"); //将鼠标恢复箭头状 Cursor.Current = cr; } 保存工程并编译,邮件发送程序就编制成功了,我们还可以进一步改造该函数,制作一个SMTP类,将其应用于自己的软件。
using System.Web.Mail;private void BtnSentMail_Click(object sender, System.EventArgs e)
{
MailMessage mailObj = new MailMessage(); mailObj.From ="[email protected]";
mailObj.To = "[email protected]"; mailObj.Subject = "标题";
mailObj.Body = "正文";
mailObj.BodyFormat = MailFormat.Html;
mailObj.Priority = MailPriority.High; mailObj.Attachments.Add(new MailAttachment("c:\\附件.txt")); SmtpMail.Send(mailObj);
}
程序片段:
System.Web.Mail.MailMessage mail =new System.Web.Mail.MailMessage();
mail.From="manager@"+Application["APP_EXCHANGE_SERVERNAME"].ToString();
mail.To=strEMail;
mail.Body="考试信息订阅:\n 您好,又有新考试安排,请注意查看相关信息";
mail.BodyFormat=System.Web.Mail.MailFormat.Text;
mail.Subject="考试信息订阅发布内容";
try
{
System.Web.Mail.SmtpMail.Send(mail);
}
catch
{
showmessage.Value="订阅信息发送失败";
}
Configuration conf=new ConfigurationClass();
conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value=CdoSendUsing.cdoSendUsingPort;
conf.Fields[CdoConfiguration.cdoSMTPServer].Value="smtp.21cn.com";
conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value=25;
conf.Fields[CdoConfiguration.cdoSMTPAccountName].Value="hydnoahark";
conf.Fields[CdoConfiguration.cdoSendUserReplyEmailAddress].Value="\"c_zc\" <[email protected]>";
conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value="\"c_zc\" <[email protected]>";
conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value=CdoProtocolsAuthentication.cdoBasic;
conf.Fields[CdoConfiguration.cdoSendUserName].Value="c_zc";
conf.Fields[CdoConfiguration.cdoSendPassword].Value="12345678";
conf.Fields.Update(); MessageClass msg=new MessageClass();
msg.Configuration=conf; msg.To="[email protected]";
msg.Subject="收到否";
msg.TextBody="It's test";
msg.From="[email protected]";
msg.Send();
需要引用CDO(Microsoft CDO For Exchange 2000 Library),注意引用别出错了。以上代码经测试成功。
另:其中的示例密码已更改:)
回答完了就发现楼主不是要的这个:-P