我在用Set msg = Server.CreateObject("JMail.Message")时,一直报错,是不是在用这个对象前还需要其他的设置?

解决方案 »

  1.   

    网上下载jmail并安装,如果是自己的机器的话
      

  2.   

    .net不是有自带的smtp服务吗?
      

  3.   

    昨天就在找你帖子,这个是个例子,也许会对你有帮助:
    http://www.vchelp.net/vchelp/file2002_4/csmail.asp?type_id=99&class_id=2&cata_id=22&article_id=879
      

  4.   


                                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类,将其应用于自己的软件。
      

  5.   

    不要在页面上<%%>,这样不好,.net无法检验其语法错误。写到CS里吧。
      

  6.   

    .net里发邮件的一个小例子
    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);
    }
      

  7.   

    我上次贴的是C#应用程序例子,下面是个ASP.NET页面的例子。
    程序片段:
    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="订阅信息发送失败";
    }
      

  8.   

    我前面贴过两次对于邮件服务器需要认证的邮件发送问题的代码,现再次贴上来(声明:不是我的原创)
    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),注意引用别出错了。以上代码经测试成功。
    另:其中的示例密码已更改:)
      

  9.   

    >>ASP中发E-mail?(不是ASP.NET啊)
    回答完了就发现楼主不是要的这个:-P