您的位置:首页 > 大数据 > 人工智能

Jmail组件发送电子邮件

2009-11-22 16:45 169 查看
参考: http://www.cnblogs.com/wenming205/articles/1238035.html

关于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等邮件软件看能否收取该邮箱信件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: