美云VPS JMAIL安装配置

作者:美云 发布日期:2010/5/31 22:06:46 浏览次数:9818 复制

    jmail发送邮件的实例代码网上很多.但是有些细节如果不配置好,发送失败的可能性很大.

    首先说明一下jmail安装配置步骤:

    1. JMail 下载地址
     http://www.xunmeinet.com/doc/jmail43.rar

    2.安装

    本人在Windows 2003下面配置,其它系统还没有测试。安装到目录比如: C:\Program Files\Dimac\w3JMail4\jmail.dll

    然后还需要把jmail.dll复制到系统目录,比如C:\WINDOWS\system32

    再运行:regsvr32 jmail.dll

    这样才算把jmail安装好了.

    3.如果出现标题显示的错误,检查下列内容.

    (1)、用户名和密码

    在代码里要写上 
smtpUser ="用户名"
smtpPass="密码"
或是
objMail.Send("用户名:密码@server.net")

    要写发送端连接的邮件服务器和进入邮件服务器的用户名和密码。用户名和密码一定要存在于服务器上且正确。而且好象用户名和密码最好不要带下划线。


    (2)、.防火墙阻止了网络通讯或网络故障

    有可能防火墙会认为这是蠕虫导致的狂发邮件的情况,所以会禁止群发邮件。

    所以检查防火墙的设置就可能会发现。 

    (3).jmail组件权限不够

    (4).邮件服务器故障

    (5)测试用的邮件服务器比如:smtp.163.com可能把你列入黑名单,换个邮件服务器发。尽量不要不停发邮件。


    在 .NET 中使用 Jmail 需要如下设置:

1、安装jmail;
2、找到jmail.dll;
3、注册该组件Jmail.dll,作法是将jmail.dll文件拷贝到system32目录下,再运行命令“regsvr32 jmail.dll”(不包括引号),卸载可运行“regsvr32 /u jmail.dll”;
4、执行Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin\ildasm.exe(可使用Visual Studio .Net 2003 命令提示),
格式如下:tlbimp c:\Program Files\Dimac\w3JMail4\jmail.dll /out:MyJmail.dll /namespace:MyJmail
生成MyJmail.dll后,将它引用至项目中

事例代码:

<%
/********************************************************************************
   JMail 下载地址
http://hbdx3.skycn.com/down/w3JMail43Personal.exe
 
安装之后把jmail.dll放到系统目录
然后运行:regsvr32 jmail.dll
********************************************************************************/
//SMTP Server config
var val_sSMTPServer = "smtp.126.com";
var mailFrom = "test@126.com";//邮箱地址
var smtpUser = "username";//邮箱用户名
var smtpPass = "******";//邮箱密码

function Rw(dat)
{
   Response.Write(dat + '\r\n');
   return;
}

function Rf(dat)
{
   return Request.Form(dat)();
}

function JMailSend(fromName,formMail,toMail,mailSubject,mailBody)
{
   var objMail = new ActiveXObject( "JMail.Message" );

    var subject = mailSubject;
    var body = mailBody;
    var mail = toMail;

    objMail.Logging = true;
    objMail.Charset = "UTF-8";
    objMail.Priority = 3;
    objMail.ContentType = "text/html";

    objMail.From = formMail;
    objMail.FromName = fromName;
    objMail.AddRecipient( mail );
    objMail.Subject = subject;
    objMail.Body = body;

    objMail.MailServerUserName = smtpUser;
    objMail.MailServerPassword = smtpPass;
    objMail.Send( val_sSMTPServer );
   objMail.Close();
}

/*
碰到这种情况说明网易把IP列入黑名单需要换smtp服务器
The message was undeliverable. All servers failed to receive the message
ClientLogging enabled: Client Remote Address: 127.0.0.1
.execute()
{
Trying server mail:smtp.163.com
<- 220 163.com Anti-spam GT for Coremail System (163com[20050206])
-> EHLO linjin10-sj78xi
<- 250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
-> AUTH LOGIN
Sending authentication data..
<- 550 用户被锁定
Authentication failed.
smtp.163.com failed..
No socket for server. ConnectToServer()
1 of 1 servers failed
}