描述:群发邮件,要求邮件要挂附件和正文。
问题:想显示附件和正文,但下面的代码不能一起显示寻求好心人帮助,谢谢 ^_^代码如下:
/*
* 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);
}
}
}
问题:想显示附件和正文,但下面的代码不能一起显示寻求好心人帮助,谢谢 ^_^代码如下:
/*
* 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);
}
}
}
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);
}
}