Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java类对象作为电子邮件附件发送_Java_Email_Smtp - Fatal编程技术网

将Java类对象作为电子邮件附件发送

将Java类对象作为电子邮件附件发送,java,email,smtp,Java,Email,Smtp,我正在使用Java的电子邮件类通过SMTP服务器发送电子邮件。我想添加一个功能,如果用户重新提交他们的表单,我会通过电子邮件向他们发送一个附件,其中包含他们正在提交的旧数据和新数据的副本,以便他们可以看到他们正在进行的更改。我对这个流程没有问题,当我想将它们添加到我的电子邮件时,我遇到了问题。我见过的向java电子邮件添加附件的大多数解决方案都包括附加系统文件,但这些对象是在运行时生成的,我不想仅仅为了这个功能就开始向系统添加文件,因此,我想知道是否可以专门添加对象作为附件。如果要将对象输出到控

我正在使用Java的电子邮件类通过SMTP服务器发送电子邮件。我想添加一个功能,如果用户重新提交他们的表单,我会通过电子邮件向他们发送一个附件,其中包含他们正在提交的旧数据和新数据的副本,以便他们可以看到他们正在进行的更改。我对这个流程没有问题,当我想将它们添加到我的电子邮件时,我遇到了问题。我见过的向java电子邮件添加附件的大多数解决方案都包括附加系统文件,但这些对象是在运行时生成的,我不想仅仅为了这个功能就开始向系统添加文件,因此,我想知道是否可以专门添加对象作为附件。

如果要将对象输出到控制台以进行调试,您将如何做到这一点?您是否要
.ToString()
它,是否要迭代属性并将它们作为单个字符串输出

不要将对象视为
对象
,而要考虑如何向用户显示它。如果这涉及到很多带有描述符的行,以便它们知道数据的含义,那么就这样输出数据。如果他们是开发人员,并且希望将其视为JSON,那么将其输出为这样的格式

最有可能的情况是,您必须以某种方式对对象进行迭代,才能将其作为字符串输出到主体本身中

如果确实要添加附件,可以创建一个临时文件(使用随机名称以防止覆盖该文件),发送带有附件的电子邮件,然后删除该文件

我想说的是,可能有一种方法可以在内存中创建一个文件,而无需将其保存到磁盘,可以作为附件使用,但Java中可能没有


我们使用Jackson映射,因此对象在发送到DB之前映射为JSON格式,因此它将是附加到电子邮件的JSON结构。我想避免将临时文件写入系统,我想知道是否有一种方法可以将其流式传输?@user3334871,我寻找过它,但在我花的5分钟里,我找不到一种明显或简单的方法。有可能将内存中的字节流用作文件,但它看起来相当复杂,我不确定它是否可以用作附件。我以为加上这些信息会把我的答案弄得一团糟,使它成为一个无用的答案,所以我没有把它包括进去。