• Jmail组件发送电子邮件


    关于Jmail的使用介绍网上已经不少,我把自己的体验纪录一下,既帮助跟我一样的初学者也是个积累。
        Jmail的使用主要有以下几点:
        一. 安装:要在机器上安装Jmail组件,其实就是一个“Jmail.dll”,一般会被安装到

    C:\windows\system32\目录中。如果下载到的仅仅是Jmail.dll这个文件,就可以手动放到这个目录,不过别的目

    录应该也可以,我没试过。
        二. 注册:自动安装一般同时会自动注册,无需关心这个。但是下载的仅仅是Jmail.dll这个文件,那么必须

    自己手动注册。注册的方法如下:在命令行窗口里运行命令“regsvr c:\windows\system32\jmail.dll”,当然

    文件路径自己指定。
        三. 引用:把jmail.dll复制到Web站点的bin目录里,然后给站点添加COM引用。
        四. 写代码:类似如下,记得引用命名空间。


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    using jmail;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            jmail.MessageClass mail = new jmail.MessageClass();

            DateTime t = DateTime.Now;
            string subject = "Jmail test! " + t.ToString();
            string body = "Hello world!<br/>";
           
           
            string fromemail = "mymail@126.com";
            string toemail = "mail@china.com";
            //silent属性:如果设置为true,jmail不会抛出例外错误. jmail. send( () 会根据操作结果返回true

    或false
            mail.Silent = true;
            //jmail创建的日志,前提loging属性设置为true
            mail.Logging = true;
            //字符集,缺省为"us-ascii"gb2312
            mail.Charset = "UTF-8";
            mail.Encoding = "BASE64";
            //信件的contentype. 缺省是"text/plain") : 字符串如果你以html格式发送邮件, 改为"text/html"

    即可。
            mail.ContentType = "text/html";
            //添加收件人
            mail.AddRecipient(toemail, "", "");
            mail.From = fromemail;
            //发件人邮件用户名
            mail.MailServerUserName = "mymail@126.com";
            //发件人邮件密码
            mail.MailServerPassWord = "123";
            //设置邮件标题
            mail.Subject = subject;
            //邮件添加附件,(多附件的话,可以再加一条jmail.addattachment( "c:\\test.jpg",true,null);)就

    可以搞定了。[注]:加了附件,讲把上面的jmail.contenttype="text/html";删掉。否则会在邮件里出现乱码
            //mail.AddAttachment("c:\\test.jpg", true, null);
            //邮件内容
            mail.Body = body + t.ToString();
            //jmail发送的方法
            if (mail.Send("smtp.126.com", false))
            {
                Response.Write("<script language='javascript'>alert('OK!')</script>");
            }
            else
            {
                Response.Write("<script language='javascript'>alert('False!')</script>");
                Response.Write(mail.ErrorCode.ToString() + "<br/>" + mail.ErrorMessage.ToString() +

    "<br/>" + mail.ErrorSource.ToString() + "<br/>");
            }
            mail.Close();
        }
    }

    //遇到的错误
    通常我们遇到的错误是:'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等邮件软件看能否收取该邮箱信件。

  • 相关阅读:
    Asp.net导出Excel文件
    Ext.Net 使用总结之GridPanel中的选中行
    Ext.Net 使用总结之查询条件中的起始日期
    使用python crontab设置linux定时任务
    JSON Serialization/Deserialization in C#
    redis 基本数据类型-列表(List)
    redis 基本数据类型-字符串(String)
    使同一个server上不同port的django应用可在同一个浏览器上打开
    django server之间通过remote user 相互调用
    使用python实现短信PDU编码
  • 原文地址:https://www.cnblogs.com/wenming205/p/1238035.html
Copyright © 2020-2023  润新知