针对QQ邮箱发邮件限制的解决方案

使用多个邮箱轮换使用进行发送

1、将使用的邮箱存储在一个统一的字符串变量中,将所有可使用的邮箱存储在一个字符串数组中(我的三个邮箱授权码相同,如果授权码不同,则建立一个授权码数组,和邮箱切换的解决方案同理)

全局变量(发邮件使用的邮箱)

可使用的邮箱数组

2、将建立连接的代码封装到一个函数,将连接对象变为成员变量,全局化,即每次调用同一个变量,而变量的对象可能不相同(会变化)

连接相关对象变为全局变量

private static Properties props;
    private static Session mailSession;
    private static MimeMessage message;
    private static Transport transport;

建立连接的函数

(不懂这几个对象是干嘛的百度)

3、设置每发送20封邮件切换一次邮箱,封装成函数

函数如下:

private void switchMail()
{
    int i=0;
    for (;i<FPAMailArray.length;i++)
        if (FPAMail.equals(FPAMailArray[i]))
            break;
    if (i+1==FPAMailArray.length)
        i=0;
    else
        i++;
    FPAMail=FPAMailArray[i];
    init();
}

4、每次发送邮件的时候做判断(i%20==0)

新版解决方案代码工具类

新版工具类代码

配置工具类对象到容器

经验分享 程序员 微信小程序 职场和发展