博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaMail转发邮件
阅读量:4955 次
发布时间:2019-06-12

本文共 2330 字,大约阅读时间需要 7 分钟。

最近要做一个邮件转发功能,看了好多blog,都是接受邮件,再解析邮件内容,再组装成新的邮件发出!

我按照这个不够,不错!邮件发出去了。但是好麻烦啊,接受邮件是个Message,发送邮件也是个Message,是不是可以可以修修改改直接用啊!

但是我有不想修改原邮件,怎么办。copy啊!

发送邮件需要那些基本内容啊?

如下:

forward.setSubject(message.getSubject());forward.setFrom(new InternetAddress("XXX"));forward.setRecipient(Message.RecipientType.TO, new InternetAddress("OOO"));forward.setSentDate(new Date());forward.setContent(message.getContent(), message.getContentType());

对就是这些内容,而这些内容都可以直接从原邮件中获得,特别是Content这个字段,不需要解析这个Object具体是啥,直接拿来用就行了!

转发是不是很简单。

实用demo:

public void forwardMail(Session session, Message message) throws MessagingException, IOException {        Message forward = new MimeMessage(session);        forward.setSubject(message.getSubject());        forward.setFrom(new InternetAddress("xxx@126.com"));        forward.setRecipient(Message.RecipientType.TO, new InternetAddress("ooo@126.com"));        forward.setSentDate(new Date());        forward.setContent(message.getContent(), message.getContentType());        Transport smtp = session.getTransport("smtp");        smtp.connect();        smtp.sendMessage(forward, forward.getAllRecipients());        smtp.close();    }

 最后附上,接受邮件,发送邮件的属性设置:(有些邮箱的用户名不带后缀,只用@前面的部分就行了)

Properties properties = new Properties();        // 发送邮件使用的协议        properties.setProperty("mail.transport.protocol", sendProtocol);        properties.setProperty("mail.smtp.host", mailHost);        properties.setProperty("mail.smtp.timeout", "20000");        properties.setProperty("mail.smtp.connectiontimeout", "20000");        // 接收邮件使用的协议        properties.setProperty("mail.store.protocol", storeProtocol);        properties.setProperty("mail.imap.host", mailHost);        properties.setProperty("mail.imap.starttls.enable", "true");        Session session = Session.getDefaultInstance(properties);//        session.setDebug(true);        Store store = session.getStore(storeProtocol);        // 接受邮件        store.connect(mailHost, user, password);        Folder folder = store.getFolder("INBOX");        folder.open(Folder.READ_WRITE);        //使用完关闭资源        folder.close(false);        store.close();                // 发送邮件        Transport smtp = session.getTransport("smtp");        smtp.connect();        smtp.sendMessage(forward, forward.getAllRecipients());        smtp.close();

 

转载于:https://www.cnblogs.com/halu126/p/6679610.html

你可能感兴趣的文章
一道常被人轻视的前端JS面试题
查看>>
ThinkPHP5从零基础搭建CMS系统(一)
查看>>
智能指针总结
查看>>
Excel导入遇到的问题An object with the same key already exists in the ObjectStateManager……
查看>>
《全栈性能Jmeter》-5JMeter负载与监听
查看>>
csharp: Export DataSet into Excel and import all the Excel sheets to DataSet
查看>>
C++调用android非静态函数
查看>>
C输出格式——转载
查看>>
转载:JS触发服务器控件的单击事件
查看>>
Hibernate的基本工作原理
查看>>
Download/Attach source-code/java-docs with maven dependencies
查看>>
博客迁移
查看>>
SpringCloud之服务注册与发现Eureka(一)
查看>>
tomcat源码 Container
查看>>
【最小生成树】BZOJ 1196: [HNOI2006]公路修建问题
查看>>
Android四大组件之Activity(一)
查看>>
lvs 初始 第一章
查看>>
META-LEARNING UPDATE RULES FOR UNSUPERVISED REPRESENTATION LEARNING
查看>>
cookie和setting
查看>>
漂在等待离职的日子(二)
查看>>