我测试通过的例子。/*
* 作成日: 2005/11/21
*/
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("[email protected]","周","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();
}
}
}
* 作成日: 2005/11/21
*/
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("[email protected]","周","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();
}
}
}
解决方案 »
- 不使用框架,如何实现依赖注入
- 老师要用J2EE做一个论坛,求大申知道
- J2ee的5个核心问题
- 如何深入学习JAVA
- 用axis2 或 CXF 怎么样自定义返回结果,(如自定义xml)
- 高手进,weblogic9下,应用服务删除后再部署的话,以下程序还在跑?不想重启服务器,怎么弄?
- JSP连接ORACLE的双机服务器不稳定呢,现在怎么做单机连接?
- 问个很深奥的问题
- 关于在开启apache以后,web.xml中url-mapping功能无法使用的问题
- 谁有Borland Enterprise Server AppServer版
- 初级问题:一个默认的JBOSS已经记那里好了!然后连接出错
- 问一下,substring()这个方法到底截取的是字符还是字节?
"当然,C,D应该只收到第一次A发给他们的信,转发的不能到达。"
我按你的程序作了,但是转发的信也能收到阿
// Send message
Transport.send(forward);把它变成
public static void send(Message msg,
Address[] addresses)
的这个方法,他就不会送给CC的人了。Address[] oAdd = {new InternetAddress(new InternetAddress("[email protected]","周","GB2312")};
Transport.send(forward,oAdd);这样。
过来接分