Java mail群发邮件,出现堆溢出情况,求解!!

问题描述

代码如下:邮箱全部是从txt文件中读取的放在arraylist中,每次发送50封左右没问题,发多了就出现异常。。求解!!!

解决方案

解决方案二:
for循环中每次都newInternetAddress会让堆开销增大。可以将InternetAddress定义在外面,然后在for循环中对这个InternetAddress实例进行操作,并保证每次for循环时,InternetAddress实例不影响就可以了。
解决方案三:
引用1楼magi1201的回复:

for循环中每次都newInternetAddress会让堆开销增大。可以将InternetAddress定义在外面,然后在for循环中对这个InternetAddress实例进行操作,并保证每次for循环时,InternetAddress实例不影响就可以了。

我认为也是那里的问题,那里只是类型转换。String不能强转成InternetAddress,所以只能这么写,有没有其他办法!最好能附上代码!
解决方案四:
使用信号量Semaphore控制代发队列。起线程池并发发邮件。

时间: 2024-09-23 13:30:39

Java mail群发邮件,出现堆溢出情况,求解!!的相关文章

Java堆溢出之OutOfMemoryError异常解决办法

在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下面都叫OOM)异常的肯能,下面就通过一些实例来验证异常发生的场景. 在下面举的例子中,在注释中会设定一些虚拟机的参数,在"VM Args"后边,如果你是用控制台命令来执行的程序,直接把这些参数放到Java命令之后就行,如果用的开发工具,Eclipse IDE,才Debug/Run页签中设置.   Java堆溢出 堆是用来存储对象实例的,当我们不断的创建对象,并且保证

java内存溢出示例(堆溢出、栈溢出)_java

堆溢出: 复制代码 代码如下: /** * @author LXA * 堆溢出 */ public class Heap {     public static void main(String[] args)     {         ArrayList list=new ArrayList();         while(true)         {             list.add(new Heap());         }     } } 报错: java.lang.Ou

java中三种常见内存溢出错误的处理方法(good)

相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识.jvm管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域).Heap space(堆区域).Java Stacks(Java栈).其中永久保存区域主要存放Class

用Java Mail发送带有图片附件的html格式邮件

用Java Mail发送带有图片的html格式的邮件,针对于显示图片,一般有两种方法. 1. 图片存在于服务器上,我们只需要把图片在服务器的的链接放进去即可. 这种发式比较简单,但是这种方法有些缺陷: 图片不支持离线浏览: 每次浏览邮件需要访问web服务,增加服务器负担: 若图片以二进制的方式存在于数据库或是动态生成的,则无法有效的解决. 2. 把图片以附件的方式发送出去,这种方式非常适用于图片存在于数据库中的情况. 本文也主要讨论这种情况. 对于Java Mail的基础知识,请看http://

Android中如何使用Java Mail API发送邮件

最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交.程序的建议.程序使用中的问题,但是这样的服务基本上不是完全开源和免费的,并且我对程序反馈的定位还是用户可以把他的想法通过写文字的方法发送回来就可以(不需要记录崩溃时的系统状况),所以还是决定在完全了解实现机制的基础上来实现反馈功能. 采用发送邮件的方式不需要自己构建服务器,同时也符合我对反馈的管理习

Java发邮件:Java Mail与Apache Mail

一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate 779554589@qq.com 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务器有不同的地址,

java 求最大子序列和问题递归求解报越界异常

问题描述 java 求最大子序列和问题递归求解报越界异常 /** * 分治递归求解问题: * 分为三种情况: * 1.最大子序列出现在左半边部分 * 2.最大子序列出现在右半边部分 * 3.最大子序列出现在中间部分,此时取两边的最大子序列的和之和(左边子序列包含最后一个元素,右边子序列包含第一个元素) * * @param array * @return */ public static int maxSubSum1(int[] array) { return maxSubSumRec(arra

Linux堆溢出漏洞利用之unlink

Linux堆溢出漏洞利用之unlink 作者:走位@阿里聚安全 0 前言 1 背景介绍 首先,存在漏洞的程序如下: 在代码[3]中存在一个堆溢出漏洞:如果用户输入的argv[1]的大小比first变量的666字节更大的话,那么输入的数据就有可能覆盖掉下一个chunk的chunk header--这可以导致任意代码执行.而攻击的核心思路就是利用glibc malloc的unlink机制. 上述程序的内存图如下所示: 2 unlink技术原理 2.1 基本知识介绍 unlink攻击技术就是利用"gl

Java Mail与Apache Mail发送邮件示例_java

一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate 779554589@qq.com 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务器有不同的地址,