使用Javascript实现电子邮件群发功能

部分代码参考网络资料

必备条件是:客户端安装Jmail组件。

收件人的电子邮件地址列表使用 逗号"," 分割。    目前这个群发功能在 IE 6.0 下测试通过。

主要代码如下:

 

< script type = " text/javascript " >

ExpandedBlockStart.gifContractedBlock.gif
function  $( id ) {return document.getElementById( id );}
ExpandedBlockStart.gifContractedBlock.gif
function  getValueById( id )  return document.getElementById(id).value; }


//  检查表单的值是否为空
function  ChkFormValue()
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('sys_username').value == ''{ alert('发送邮件的 用户名不能为空。'); $('sys_username').focus(); return false; }
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('sys_emailAddress').value == ''{ alert('发送邮件的 邮件地址不能为空。'); $('sys_emailAddress').focus(); return false; }
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('sys_password').value == ''{ alert('发送邮件的 密码不能为空。'); $('sys_password').focus();  return false; }
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('sys_Smtp').value == ''{ alert('发送邮件的 smtp服务器地址不能为空。'); $('sys_Smtp').focus(); return false; }

ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('id_Mail').value == ''{ alert('收件人 邮件地址不能为空。'); $('id_Mail').focus();  return false; }
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('id_Subject').value == ''{ alert('邮件的主题 不能为空。'); $('id_Subject').focus();  return false; }
ExpandedSubBlockStart.gifContractedSubBlock.gif
if( $('id_Body').value == ''{ alert('发送邮件的内容 不能为空。'); $('id_Body').focus();  return false; }
return true;
}



SetDefaultValue(
' 1 ' );  //  1 使用系统默认的邮件配置信息,发送邮件,0 清空配置信息

function  SetDefaultValue(mySwitch)
ExpandedBlockStart.gifContractedBlock.gif
{
if (mySwitch == '1')
ExpandedSubBlockStart.gifContractedSubBlock.gif 
{
document.getElementById(
'sys_username').value = 'test@163.com';  
document.getElementById(
'sys_emailAddress').value = 'test@163.com'
document.getElementById(
'sys_password').value = '123456'
document.getElementById(
'sys_Smtp').value = 'smtp.163.com'
 }

else
ExpandedSubBlockStart.gifContractedSubBlock.gif 
{
document.getElementById(
'sys_username').value = '';  
document.getElementById(
'sys_emailAddress').value = ''
document.getElementById(
'sys_password').value = ''
document.getElementById(
'sys_Smtp').value = ''
 }

}



// 点击 "发送邮件" 按钮之后,调用这个函数
function  sendMail()
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif
if (!ChkFormValue()) return false; }  //首先检测表单的内容是否正确
var mailAddressList = getValueById( "id_Mail" ).split(",");  //获得发送的email地址的列表

  
//首先清空上次的发送状态记录
  $('clientShowDo').innerHTML = '';
  $(
'clientShowSuccess').innerHTML = "0" ;
  $(
'clientShowFail').innerHTML  = "0" ;
  $(
'clientShowFailList').innerHTML = "失败列表:" ;
  $(
'clientShowFailDescrip').innerHTML = "失败描述:"

  
for(var i=0; i<mailAddressList.length; i++//根据分割","得到的数组,循环发送Email
ExpandedSubBlockStart.gifContractedSubBlock.gif
  {
    
// alert(mailAddressList[i]);
    DosendMail(mailAddressList[i]); 
  }
 
  
 alert(
'发送完毕'); 
 $(
'id_Mail').value = '';
 $(
'id_Body').value = '';
}




// 发送邮件的主函数
function  DosendMail(mailAddressList)
ExpandedBlockStart.gifContractedBlock.gif
{
$(
'clientShowDo').innerHTML=''
 
var result = false;
 
try
ExpandedSubBlockStart.gifContractedSubBlock.gif 
{
  
var objMail = new ActiveXObject( "JMail.Message" );
  
if ( !objMail )
ExpandedSubBlockStart.gifContractedSubBlock.gif  
{
   alert( 
"客户端创建Jmail对象错误!" );
   
return false;
  }


  
var subject = getValueById( "id_Subject" );
  
var body =  getValueById( "id_Body" );

  mailAddressList 
= mailAddressList.replace(new RegExp(" ","gm"),"");    //去除邮件地址中可能存在的空格

  objMail.Logging 
= true;
  objMail.Charset 
= "GB2312";
  objMail.Priority 
= 3;
  objMail.ContentType 
= "text/html";
  
  objMail.From 
= getValueById('sys_emailAddress');  
  objMail.FromName 
= "你的称呼";
  objMail.AddRecipient( mailAddressList );
  objMail.Subject 
= subject;
  objMail.Body 
= body;

  objMail.MailServerUserName 
= getValueById('sys_username');  
  objMail.MailServerPassword 
= getValueById('sys_password'); 
  
var sys_StmpAddr = getValueById('sys_Smtp');
  
  objMail.Send( sys_StmpAddr ); 

  result 
= true;
  setTimeout(
"1200",$('clientShowDo').innerHTML='OK');
 
  $(
'clientShowSuccess').innerHTML = parseInt($('clientShowSuccess').innerHTML) + 1 ; //显示已经发送成功的条数

   
//SetDefaultValue('0'); //清空默认的设置
 }

 
catch ( e )
ExpandedSubBlockStart.gifContractedSubBlock.gif 
{
  
//alert( e.description );
  //alert( objMail.Log ); 
  $('clientShowFail').innerHTML = parseInt($('clientShowFail').innerHTML) + 1 ; //错误数加1
  $('clientShowFailList').innerHTML = $('clientShowFailList').innerHTML + "<br>" + mailAddressList ; //追加到错误列表
  $('clientShowFailDescrip').innerHTML = $('clientShowFailDescrip').innerHTML + "<hr>" + objMail.Log  //显示详细的错误信息
 }


 
return result;
}


< / script>

 

 

代码文件下载:EmailClient.rar

 

 

转载于:https://www.cnblogs.com/seagreen7/archive/2009/01/13/1374929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值