网络选摘之邮件转发
来源:互联网 发布:js去除重复键值对 编辑:程序博客网 时间:2024/06/06 00:13
假设A发信给B,同时CC给C,D
B把邮件转发给E
实现下面的功能
当E看到邮件的时候From是A, TO是E, CC是C,D
当然,C,D应该只收到第一次A发给他们的信,转发的不能到达。
=============================
d这个问题就是伪造邮件了。javamail可以实现地址的伪造。
MimeMessage msg=new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
B把邮件转发给E时,把from的地址设置为A的不就可以了吗
=============================
/*
* 作成日: 2005/11/18
*/
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
* @author Croatia
*/
public class Test8 {
static int attachnum = 1;
public static void main(String args[]) {
try {
String host = "xxx.xxx.xxx.xxx";
String user = "xxxxxx";
String password = "xxxxxx";
Session session =
Session.getDefaultInstance(System.getProperties(), null);
Store store = session.getStore("pop3");
store.connect(host, -1, user, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
int totalMessages = folder.getMessageCount();
if (totalMessages == 0) {
System.out.println("没有?件");
folder.close(false);
store.close();
return;
}
Message[] messages = folder.getMessages();
for (int i = 0; i < messages.length; i++) {
sendMail(messages[i]);
//messages[i].setFlag(Flags.Flag.DELETED, true);
}
//folder.close(true);
folder.close(false);
store.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void sendMail(Message m) throws Exception {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", "XX.XX.XX.XX");
Session session = Session.getDefaultInstance(props, null);
// Create the message to forward
MimeMessage forward = new MimeMessage(session);
// Fill in header
forward.setSubject(m.getSubject());
forward.setFrom(m.getFrom()[0]);
forward.addRecipient(
Message.RecipientType.TO,
new InternetAddress("EE@21cn.com","周","GB2312"));
InternetAddress[] oAddress = (InternetAddress[])m.getRecipients(Message.RecipientType.CC);
if (oAddress != null){
for (int j=0;j<oAddress.length;j++){
forward.addRecipient(
Message.RecipientType.CC,
new InternetAddress(oAddress[j].getAddress(),oAddress[j].getPersonal()));
}
}
// Create your new message part
MimeBodyPart messageBodyPart = new MimeBodyPart();
//messageBodyPart.setText("Here you go with the original message:/n/n","iso-2022-jp");
// Create a multi-part to combine the parts
Multipart multipart = new MimeMultipart();
//multipart.addBodyPart(messageBodyPart);
// Create and fill part for the forwarded content
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(m.getDataHandler());
// Add part to multi part
multipart.addBodyPart(messageBodyPart);
// Associate multi-part with message
forward.setContent(multipart);
// Send message
Transport.send(forward);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 网络选摘之邮件转发
- qmail之邮件转发规则
- 网络选摘之收邮件时如何处理中文
- Java Socket 网络编程 之 信息转发
- 网络(二) 之 路由器转发原理
- Exchange 日常管理之三设置邮件转发
- Exchange 日常管理之三设置邮件转发
- 网络协议 之 邮件协议
- 网络选摘之[javamail在线发邮件全部代码,包括身份验证部分]
- 网络选摘之[java mail发邮件的时候如何带附件]
- root邮件转发
- 巧用gmail转发邮件
- postfix 自动转发邮件
- [ZT]postfix邮件转发
- python smtp邮件转发
- javamail邮件转发
- C#转发邮件
- 06. JavaMail 转发邮件
- 使用CImageList控件
- 春节要加班!!!
- PEAR::HTML_QuickForm与Smarty 的结合应用
- 网络选摘之收邮件时如何处理中文
- p2p架构的邮件系统
- 网络选摘之邮件转发
- 朝花夕拾之六 重庆旅途
- 网络选摘之[javamail在线发邮件全部代码,包括身份验证部分]
- 网络选摘之[java mail发邮件的时候如何带附件]
- 对java里equals的一些理解!
- 五句话改变人生
- PE Tools v1.5, Build 400, Christmas Edition by NEOx
- Edsger Dijkstra经典言论 (ZT)
- 一个测试运行时间的函数