public class Test1 {
/*
 * from:发件人 password:发件密码 to: 收件人 subject:主题messageText:内容 Server:smtp服务器地址
 */
// 文本邮件
public void sendTextMail(String from, String to, String subject,
String messageText, String password, String Server)
throws MessagingException, javax.mail.MessagingException, ParseException, UnsupportedEncodingException {
// 建立邮件会话
Properties pro = new Properties();
pro.put("mail.smtp.host", Server);
pro.put("mail.smtp.auth", "true");
Session sess = Session.getInstance(pro);
sess.setDebug(true);
// 新建一个消息对象
MimeMessage message = new MimeMessage(sess);
// 附件
MimeMultipart mp=new MimeMultipart("related");    //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
MimeBodyPart  bp = new MimeBodyPart();//正文
      FileDataSource fileds = new FileDataSource("D:\\11.txt");
      bp.setDataHandler(new DataHandler(fileds));
      bp.setFileName(MimeUtility.encodeWord(fileds.getName(),"GB2312",null));//设置附件文件名
      mp.addBodyPart(bp);//////////////////////////////////////////
// 设置发件人
InternetAddress from_mail = new InternetAddress(from);
message.setFrom(from_mail);
// 设置收件人
InternetAddress to_mail = new InternetAddress(to);
message.setRecipient(Message.RecipientType.TO, to_mail);
// 设置主题
message.setSubject(subject);
// 设置内容
message.setText(messageText);
//集成附件
         message.setContent(mp);////////////////////////////////////////////
// 设置发送时间
Date d = new Date();
message.setSentDate(d);

// 发送邮件
message.saveChanges(); // 保证报头域同会话内容保持一致
Transport transport = sess.getTransport("smtp");
transport.connect(Server, from, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
public static void main(String args[]) throws javax.mail.MessagingException, ParseException, UnsupportedEncodingException {
Test1 send = new Test1();
try {
send.sendTextMail("[email protected]", "[email protected]",
"标题", "这是内容哈", "密码", "smtp.qq.com");
} catch (MessagingException e) {
e.printStackTrace();
} }

解决方案 »

  1.   

    // 新建一个消息对象
    MimeMessage message = new MimeMessage(sess);
    // create the first message part
    MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setText(messageText);
    // create the second message part
    // MimeBodyPart mbp2 = new MimeBodyPart();
    // 附件文件大小大于18.53M
    // FileDataSource fds = new FileDataSource("D:\\d.java");
    // mbp2.setDataHandler(new DataHandler(fds));
    // mbp2.setFileName(MimeUtility.encodeText(fds.getName()));// 设置附件文件名 ,
    // "GB2312",null
    // create the Multipart and its parts to it
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1);
    // mp.addBodyPart(mbp2);
    // 设置发件人
    InternetAddress from_mail = new InternetAddress(from);
    message.setFrom(from_mail);
    // 设置显示发件人的姓名,而不是显示邮箱号码(??????????????????????????)
    // message.setFrom(new InternetAddress("\"" +
    // MimeUtility.encodeText("王帆") + "\" <" + from_mail + ">"));
    // 设置收件人 1个
    // InternetAddress to_mail = new InternetAddress(to);
    // message.setRecipient(RecipientType.TO, to_mail);
    // 设置收件人多个
    message.setRecipients(RecipientType.TO,
    InternetAddress.parse(Test1.parseToAddress(to)));
    // 设置邮件回复对象
    message.setReplyTo(new Address[] { new InternetAddress(
    "[email protected]") });
    // 设置主题
    message.setSubject(subject);
    // 设置内容
    message.setText(messageText);
    // 设置发送时间
    Date d = new Date();
    message.setSentDate(d);
    // 集成附件 // add the Multipart to the message
    message.setContent(mp);