mailsend.java
来自「javamail发送程序」· Java 代码 · 共 123 行
JAVA
123 行
//////////////////////////////////////////////////
////////邮件发送主函数----禁止添加构造函数
////////本函数将调用其他相关的邮件发送函数
package myemail;
import java.io.*;
import java.util.*;
public class MailSend
{
//调用数据库查询类
public void MailList()
{
String sEnd=MailSelect.SqlSelect();
}
//按照服务器列表个数分组发件人
//参数说明logpath日志路径,sBject主题,sText正文内容,textFormat正文格式,
public void FromList(String logpath,String sBject,String sText,String textFormat)
{
//sBject=java.net.URLDecoder.decode(sBject);
int iCountFrom=MailSelect.getEmailRom();
System.out.println(iCountFrom+"发件人");
int iCountTo=MailSelect.getRowCount();
//int iCountTo=40;//测试
System.out.println(iCountTo+"收件人1");
//
//计算共有几组
int geshu=iCountTo/iCountFrom;
System.out.println(geshu+"每组个数");
//查询所有的邮件发送服务器存储到数组列中
//建立数组列
String[] sSmtpis=new String[iCountFrom];
String[] sEmailis=new String[iCountFrom];
String[] sNameis=new String[iCountFrom];
String[] sPasswordis=new String[iCountFrom];
String[] sProtis=new String[iCountFrom];
//写入内容
for(int k=0;k<iCountFrom;k++)
{
Object Object1=MailSelect.getEmailValue(k,1);//邮件发送服务器邮箱地址
sEmailis[k]=Object1.toString();
Object Object2=MailSelect.getEmailValue(k,2);//邮件发送服务器的smtp地址
sSmtpis[k]=Object2.toString();
Object Object3=MailSelect.getEmailValue(k,3);//邮件发送服务器的用户名
sNameis[k]=Object3.toString();
Object Object4=MailSelect.getEmailValue(k,4);//邮件发送服务器的密码
sPasswordis[k]=Object4.toString();
Object Object5=MailSelect.getEmailValue(k,5);//邮件发送服务器的端口
sProtis[k]=Object5.toString();
}
//循环添加邮件地址并发送
for(int i=0;i<iCountFrom;i++)
{
//取得发送邮件服务器各项参数
String[] TempServer=new String[5];
for(int l=0;l<5;l++)
{
Object ObjGeL=MailSelect.getEmailValue(i,l+1);
TempServer[l]=ObjGeL.toString();
}
//判断是不是最后一组
if((i+1)==iCountFrom)
{
System.out.println(geshu*i+"最后一组个数");
String[] geshuA=new String[iCountTo-geshu*i];
for(int j=geshu*i;j<iCountTo;j++)
{
Object ObjGeA=MailSelect.getValueAt(j,2);
geshuA[j-geshu*i]=ObjGeA.toString();
//geshuA[j-geshu*i]="cj@mail.law-star.com";
}
int iProt=java.lang.Integer.parseInt(TempServer[4].toString());
String sSmtp=TempServer[1].toString();
String sName=TempServer[2].toString();
String sPassword=TempServer[3].toString();
String sForm=TempServer[0].toString();
EmailThread myEmail1=new EmailThread(logpath,iProt,geshuA,sSmtp,sName,sPassword,sForm,sBject,sText,textFormat,sEmailis,sSmtpis,sNameis,sPasswordis,sProtis,iCountFrom);
myEmail1.Send();
}
//不是最后一组
else
{
System.out.println(geshu*i+"前机组个数");
String[] geshuB=new String[geshu*(i+1)-geshu*i];
for(int j=geshu*i;j<geshu*(i+1);j++)
{
Object ObjGeB=MailSelect.getValueAt(j,2);
geshuB[j-geshu*i]=ObjGeB.toString();
//geshuB[j-geshu*i]="cj@mail.law-star.com";
}
int iProt=java.lang.Integer.parseInt(TempServer[4].toString());
String sSmtp=TempServer[1].toString();
String sName=TempServer[0].toString();
String sPassword=TempServer[3].toString();
//String testluan=new String("<b>也是测试乱码</b>");
//testluan="<b>"+this.getStr(testluan)+"</b>";
EmailThread myEmail1=new EmailThread(logpath,iProt,geshuB,sSmtp,sName,sPassword,sName,sBject,sText,textFormat,sEmailis,sSmtpis,sNameis,sPasswordis,sProtis,iCountFrom);
myEmail1.Send();
}
}
//清除昨日发送失败数据库
MailSelect.SqlDel();
}
//中文内码转换
public String getStr(String str)
{
try
{
String temp1=str;
//byte[] temp2=temp1.getBytes("ISO8859-1");
byte[] temp2=temp1.getBytes("GBK");
String temp=new String(temp2);
return temp;
}
catch(Exception e)
{
}
return "null";
}
private selsql MailSelect=new selsql();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?