解决方案 »

  1.   

    试试这段CODEFile[] attachments=new File{" " ," "," "}
    for( int i = 0; i < attachments.length; i++ )
    {
        messageBodyPart = new MimeBodyPart();    FileDataSource fileDataSource =new FileDataSource(attachments[i]);
        messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
        messageBodyPart.setFileName(attachments[i].getName());
               
        multipart.addBodyPart(messageBodyPart);
    }
      

  2.   

    群发有2种方法:
    1、是添加接受人列表
    2、按接受人列表循环发代码改改就好用。
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;/**
     * <p>
     * Title: 简易MailBean
     * </p>
     * <p>
     * Description: 提供简便的Mail发送功能(/p>
     * <p>
     * Copyright: Copyright (c) 2003
     * </p>
     * 
     * @version 1.0
     */class ExtendString {
    public ExtendString() {
    } /**
     * 去掉字符串两端的空白字符,并将字符串转化为中国的标准字符gb2312的字符串.
     */
    public String CS(String str) { // 去掉字符串2端的空白字符
    try {
    if (str == null)
    return "";
    str = str.trim();
    if (str == null)
    return "";
    str = new String(str.getBytes("8859_1"), "GBK");
    } catch (Exception e) {
    System.out.println(e);
    }
    return str;
    }}public class SendMail {
    private String errMsg = "";
    private ExtendString ExStr = new ExtendString(); private String sender = "[email protected]";// 发件人地址
    private String smtpHost = "smtp.163.com";// 邮件发送服务器(smtp)
    private String user = "XXX"; // 登录用户名
    private String password = "xxxxxx";// 登录密码 private String subject = "!!!!!!!!";// mail主题 public SendMail() {
    this.setPropertiesAttri();
    } private void setPropertiesAttri() {
    try {
    InputStream is = getClass().getResourceAsStream(
    "MailServer.properties");
    Properties prop = new Properties();
    prop.load(is); this.setSmtpHost(prop.get("SmtpHost").toString());
    this.setUser(prop.get("User").toString());
    this.setPassword(prop.get("Password").toString());
    this.setSender(prop.get("Sender").toString());
    this.setSubject(ExStr.CS(prop.get("Subject").toString()));
    } catch (Exception ex) {
    System.err.println("ex1 in sendmail.java:" + ex.toString());
    }
    } /** 设置发件人地址 */ public void setSender(String sender) {
    this.sender = sender;
    } public String getSender() {
    return sender;
    } /** 设置邮件发送服务器(smtp) */
    public void setSmtpHost(String smtpHost) {
    this.smtpHost = smtpHost;
    } public String getSmtpHost() {
    return smtpHost;
    } /** 设置登录用户名 */
    public void setUser(String user) {
    this.user = user;
    } public String getUser() {
    return user;
    } /** 设置登录密码 */
    public void setPassword(String password) {
    this.password = password;
    } public String getPassword() {
    return password;
    } /** 设置mail主题 */
    public void setSubject(String subject) {
    this.subject = subject;
    } public String getSubject() {
    return subject;
    } /**
     * 使用smtp发送邮件 主程序
     * 
     * @throws MessagingException
     *             mail发送失败
     */
    public void smtp(String receiver, String content) throws MessagingException {
    if (smtpHost == null)
    throw new MessagingException("smtpHost not found");
    if (user == null)
    throw new MessagingException("user not found");
    if (password == null)
    throw new MessagingException("password not found"); Properties properties = new Properties();
    properties.put("mail.smtp.host", smtpHost);// 设置smtp主机
    properties.put("mail.smtp.auth", "true");// 使用smtp身份验证 Session session = Session.getDefaultInstance(properties,
    new Authenticator() {
    public PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(user, password);
    }
    }); // 获得邮件会话对象
    MimeMessage mimeMsg = new MimeMessage(session);// 创建MIME邮件对象
    if (sender != null)// 设置发件人地址
    {
    mimeMsg.setFrom(new InternetAddress(sender));
    }
    if (receiver != null)// 设置收件人地址
    {
    mimeMsg.setRecipients(Message.RecipientType.TO, parse(receiver));
    }
    if (subject != null)// 设置邮件主题
    {
    mimeMsg.setSubject(subject, "GBK");
    }
    MimeBodyPart part = new MimeBodyPart();// mail内容部分
    part.setText(content == null ? "" : content, "GBK"); // 设置邮件格式为html cqc
    part.setContent(content.toString(), "text/html;charset=GBK");
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(part);// 在 Multipart 中增加mail内容部分
    mimeMsg.setContent(multipart);// 增加 Multipart 到信息体
    mimeMsg.setSentDate(new Date());// 设置发送日期
    Transport.send(mimeMsg);// 发送邮件
    } /** 解析地址集合字符串 */
    private InternetAddress[] parse(String addressSet) throws AddressException {
    ArrayList list = new ArrayList();
    StringTokenizer tokens = new StringTokenizer(addressSet, ";");
    while (tokens.hasMoreTokens()) {
    list.add(new InternetAddress(tokens.nextToken().trim()));
    }
    InternetAddress[] addressArray = new InternetAddress[list.size()];
    list.toArray(addressArray);
    return addressArray;
    } // 供外部调用的接口
    public boolean sendMails(String mail, String content) {
    int mailLen = 0;
    int contentLen = 0;
    if (mail == null || content == null) {
    return false;
    } try {
    this.smtp(mail, content);
    } catch (Exception ex) {
    System.err.println("ex2 in sendmail.java:" + ex.toString());
    } return true;
    } public static void main(String[] args) {
    SendMail mail = new SendMail();
    String email = "[email protected]";
    String content = "账号:123 密码:123 <br/>感谢您注册!<br/><a href='http://www.xxxx.com.cn' target='_blank'>www.xxxx.com.cn</a><br/>此致<br/>xxxx <br/>即日";
    try {
    mail.sendMails(email, content);
    } catch (Exception ex) {
    System.err.println("ex33:" + ex.toString());
    }
    }}