.net下的jmail组件

来源:互联网 发布:ubuntu查看已安装软件 编辑:程序博客网 时间:2024/05/21 11:56

1.安装jmail4.3 

  2.找到jmail.dll(ProgramFilesDimacw3JMail4下)

  3.执行ProgramFilesMicrosoftVisualStudio.NETFrameworkSDKBinildasm.exe(可使用VisualStudio.Net2003命令提示),

  格式如下:tlbimpc:ProgramFilesDimacw3JMail4jmail.dll/out:myJmail.dll/namespace:myJmail

  就是我在VisualStudio.Net2005命令提示下编译执行tlbimpc:ProgramFilesDimacw3JMail4jmail.dll/out:myJmail.dll/namespace:myJmail

usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.Mail;
usingSystem.Web.Util;
usingmyJmail;
usingTool;
usingManager;
usingEntity;
publicpartialclassUserControls_Jmaill:System.Web.UI.UserControl
{
  stringstrCurrentPath=DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString();
  protectedvoidPage_Load(objectsender,EventArgse)
  {
  }
  protectedvoidbtnSend_Click(objectsender,EventArgse)
  {
    try
    {
      this.lblTitle.Text="发送邮件控件";
 
      myJmail.MessageJmail=newmyJmail.Message();
      DateTimet=DateTime.Now;
      StringSubject=this.txtTitle.Text;
      Stringbody=this.txtContent.Text;
      stringFromEmail=this.txtFormEmail.Text.Trim();//你的email
      StringToEmail=this.txtToEmail.Text;//对方的email
      StringAddAttachment=this.FileUploadSubject.PostedFile.FileName;
      //Silent属性:如果设置为true,JMail不会抛出例外错误.JMail.Send(()会根据操作结果返回true或false
      Jmail.Silent=true;
      //Jmail创建的日志,前提loging属性设置为true
      Jmail.Logging=true;
      //字符集,缺省为"US-ASCII"
      Jmail.Charset="GB2312";
      //信件的contentype.缺省是"text/plain"):字符串如果你以HTML格式发送邮件,改为"text/html"即可。
     // Jmail.ContentType="text/html";
      ToEmail=ToEmail.Replace("n","").Replace("","");
      string[]str=ToEmail.Split(',');
      for(inti=0;i<str.Length;i++)
      {
        //添加收件人
        Jmail.AddRecipient(str[i],"","");
        
        Jmail.From=FromEmail;
        //发件人邮件用户名
        Jmail.MailServerUserName=FromEmail;
        //发件人邮件密码
        Jmail.MailServerPassWord="";//FromEmail邮箱的登陆密码
        //设置邮件标题
        Jmail.Subject=Subject;
        //邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment("c:  est.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
        Jmail.AddAttachment(AddAttachment,true,null);
        //邮件内容
        Jmail.Body=body+t.ToString();
        //加密文件
        //Jmail.PGPEncrypt=true;
        //Jmail发送的方法
        Jmail.Send("smtp.163.com",false);
        Jmail.ClearAttachments();
        Jmail.ClearRecipients();
      }
      Jmail.Close();
    }
    catch(Exceptionex)
    {
      this.lblMessage.Text=ex.Message;
    }
  }
 
}


 //遇到的错误

  通常我们遇到的错误是:'The message was undeliverable. All servers failed to receive the message ',这其实是JMAIL返回的错误,并不是ASP代码产生的,根本原因是MAIL SERVER拒绝了JMAIL的请求.

  究其原因,是那些服务器不提供SMTP服务或者没有开启smtp服务;或是在服务器端开启了'禁止邮件中继服务'选项,也就是说不在其允许的IP段或指定范围内的空间里的程序是无法使用其SMTP服务的。解决方案:使用支持smtp的邮件服务器. 使用支持外来jmail申请验证身份,发送邮件的邮件服务器。 最好:使用自己的待遇smtp功能的企业邮局。因为外面的免费的邮局可能会有一些特殊设置,不如防止垃圾邮件,防止盗用邮件身份等等!

  Jmail发送首先要通过邮件服务器验证。

  如果你的服务器不支持SMTP或者你的账号不能使用SMTP服务

  那么就无法发送。

  163以前的用户默认是开通POP和SMTP服务的

  但新用户都不开通,需要付费才能使用。

  要想确定某一邮箱是否可以使用POP和SMTP,你可以用foxmail等邮件软件看能否收取该邮箱信件。

 

2:JMAIL组件无法发送邮件给163邮箱怎么办?

 

新申请的163邮箱是不支持POP和SMTP功能的,你可以参加活动,增加积分来获得这个功能。

新申请的Yahoo邮箱默认的POP和SMTP服务是关闭的,可以手动开通。

雅虎的yahoo.cn的无限容量邮箱和yahoo.com.cn邮箱,都是没有开启POP和SMTP功能,
但Yahoo提供了一个免费的“网上直投”功能,可以让你使用客户端收发Yahoo邮件。要使用这项功能,必须先注册成为Yahoo“网上直投”的成员,具体方法如下:
1.首先登录yahoo邮箱(必需是中国的yahoo):http://mail.yahoo.cn
2.在地址栏打开如下网址: http://edit.my.yahoo.com/config/set_popfwd?.src=ym
3.填写注册表单,在注册一项中选择“是”,然后选择你感兴趣的内容(可以什么都不选),,然后按"完成"按钮
4.选择“网上阅读邮件和POP功能”,其它选项可根据自己的需要选择,完成后按“提交”按钮。
5. 此时“网上直投”注册成功,系统会告诉你的“服务器设置”:
在WLM里:
接收邮件(POP3)服务器: pop.mail.yahoo.com.cn
发送邮件(SMTP)服务器: smtp.mail.yahoo.com

注意:1.POP3邮箱帐号为完整的邮件地址:如 xxx@yahoo.cn或者xxx@yahoo.com.cn
2.Yahoo的pop的信息的页面提供的SMTP地址是无法用邮件客户端发信的(高级用户才拥有这项功能),但把SMTP地址改为:smtp.mail.yahoo.com就可以了,记得勾选SMTP服务器需要身份验证

原创粉丝点击