form中method 用 postnamex, 用户名title, 显示的标题from, 从那儿送过来,缺省[email protected], 是完成以后显示的页面, 缺省取为空,即在原网页不动,有一个提示框显示,否则转至要求的网页cc, 密送的邮箱地址,缺省取[email protected]_name, 要替换sendto或sendto[]的名称, sendto缺省用'sendto',sendto[]缺省用'发送至'namex_name, 要替换namex的名称, 缺省用namexsendto, 要发送至单独一个email的项 或sendto[], 要发送至多个email的项, 对每一个checkbox,radio按钮,其name写sendto[]=...... email_1,email_2,email_3,email_4,......, 根据sendto[]值发向不同地的email地址值. 此处的1,2,3,4等要换成与sendto[]所选值完全相等

解决方案 »

  1.   

    我用的是javamail,而且不是网页
      

  2.   

    哦,继续上一个帖子,我回答在那里了。我觉得,应该用两个Session可能比较好。你测试一下呢。
      

  3.   

    突然想起来了,一定要用两个Session吧,因为,当前的使用的是POP3协议,怎么可以发信呢?要换成SMTP协议,才可以发呀。
      

  4.   

    结账  Croatia(Croatia) 接分!
      

  5.   

    import javax.mail.*;
    import javax.mail.internet.*;
    import java.io.*;
    import java.util.*;/**
     * @author Croatia
     */
    public class JavaMailTest { 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);
    Transport oTrans;
    oTrans = session.getTransport("smtp");
    oTrans.connect();
    InternetAddress toAddress = new InternetAddress("[email protected]","姓名","gb2312");
    Address[] oAdd = {toAddress};
    oTrans.sendMessage(m,oAdd);
    oTrans.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    我就是用了sendMessage的方法,换掉了Send的方法.
    因为,send() 方法执行的顺序:
    1。首先调用消息上的 saveChanges() 方法。就是这步出错。你只是转发,没有必要作这一部。
    2。然后创建合适的新 Transport 对象,调用 Transport 的 connect() 方法,
    3。调用 Transport 的 sendMessage() 方法来实际发送消息,
    4。接着调用 Transport 的 close() 方法,
    5。最后丢弃 Transport 对象的新实例。这样做的的话,等于把别人原来的信,一模一样的发给了第三个人,第三个人看到的收信人地址,其实是MAIL原来的真正的收信者。
      

  6.   

    修改了sendMail方法,这样可以修改Mail的一些信息了。 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); // 生成MimeMessage
    MimeMessage forward = new MimeMessage(session); // Mail信息
    forward.setSubject("Fwd: " + m.getSubject());
    forward.setFrom(m.getFrom()[0]);
    forward.addRecipient(
    Message.RecipientType.TO,
    new InternetAddress("[email protected]")); // Create your new message part
    BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("Here you go with the original message:\n\n"); // 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();
    }
    }
      

  7.   

    // Create your new message part
    BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("Here you go with the original message:\n\n");这个部分是加出来的.你不需要的,就去掉.假如你想设置编码的话,用MimeBodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("Here you go with the original message:n\n","gb2312");