描述:群发邮件,要求邮件要挂附件和正文。
问题:想显示附件和正文,但下面的代码不能一起显示寻求好心人帮助,谢谢  ^_^代码如下:
/*
 * MailSender.java
 *
 * Created on 2009年3月17日, 下午8:36
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */package com.blues.autoemail;
import javax.mail.*; 
import javax.mail.internet.*; 
import java.util.*; 
import javax.activation.*;
/**
 *
 * @author Eric
 */
public class MailSender {
    
    /** Creates a new instance of MailSender */
   public String smtpHost = "";
public int smtpPort = 0;
public String mailFrom = "";
public String loginid = "";
public String password = "";
         public void setSMTP(String newSmtpHost) {  
setSMTP(newSmtpHost,25);
}   public void setSMTP(String newSmtpHost,int newSmtpPort) {  
smtpHost = newSmtpHost;
smtpPort = newSmtpPort;
}   public void setFROM(String fromAddr) {  
setFROM(fromAddr,"","");
}   public void setFROM(String fromAddr,String mailLoginID,String mailPassword) {  
mailFrom = fromAddr;
loginid = mailLoginID;
password = mailPassword;
}   public void sendMail(String toAddr, String subject, String body) {  
try{  
                       String cd=body;
Properties props = new Properties();  
props.put("mail.smtp.host", smtpHost); //SET smtp Host
if(!loginid.equals(""))
{
props.put("mail.smtp.auth","true"); //SET smtp Auth
} Session session = Session.getDefaultInstance(props, null);  
MimeMessage msg = new MimeMessage(session);  
msg.setFrom(new InternetAddress(mailFrom));  
InternetAddress[] tos =InternetAddress.parse(toAddr);  
msg.setRecipients(Message.RecipientType.TO,tos);  
                        msg.setFileName("c:/salesforce/csv/"+subject+".csv"); //邮件挂附件
                        msg.setSubject(subject);  
        msg.setText(body);                       //邮件正文 
                      
if(!loginid.equals(""))
{
Transport transport = session.getTransport("smtp");
transport.connect(smtpHost,smtpPort,loginid,password);
transport.sendMessage(msg,msg.getAllRecipients());
transport.close();
}
else
{
Transport.send(msg); 
}
}  
catch(Exception e){  
 System.out.println("发邮件出错==="+e);
}  
}       
}

解决方案 »

  1.   

    菜鸟
    public void sendMail(String toAddr, String subject, String body) {  
    try{  
                           String cd=body;
    Properties props = new Properties();  
    props.put("mail.smtp.host", smtpHost); //SET smtp Host
    if(!loginid.equals(""))
    {
    props.put("mail.smtp.auth","true"); //SET smtp Auth
    } Session session = Session.getDefaultInstance(props, null);  
    MimeMessage msg = new MimeMessage(session);  
    msg.setFrom(new InternetAddress(mailFrom));  
    InternetAddress[] tos =InternetAddress.parse(toAddr);  
    msg.setRecipients(Message.RecipientType.TO,tos); 
                            msg.setSubject(subject);  
            msg.setText(body);                       
                           Multipart test=new MimeMultipart();
                           BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
                              mdp.setText(body);
                           test.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中
                               mdp=new MimeBodyPart();
                            String fname="c:\\salesforce\\csv\\"+subject+".csv";
                                 FileDataSource fds=new FileDataSource(fname);
                             DataHandler dh=new DataHandler(fds);
                              int i=fname.lastIndexOf("\\");
                             String name=fname.substring(i);//提取文件名
                              mdp.setFileName(name);//可以和原文件名不一致
                             mdp.setDataHandler(dh);
                              test.addBodyPart(mdp);
                              msg.setContent(test);
                                msg.saveChanges();
    if(!loginid.equals(""))
    {
    Transport transport = session.getTransport("smtp");
    transport.connect(smtpHost,smtpPort,loginid,password);
    transport.sendMessage(msg,msg.getAllRecipients());
    transport.close();
    }
    else
    {
    Transport.send(msg); 
    }
    }  
    catch(Exception e){  
     System.out.println("发邮件出错==="+e);
    }  
    }