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 + -
显示快捷键?