package mail.mailsend;
import java.util.Properties;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Message;
import javax.mail.internet.MimeMessage;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
import javax.mail.BodyPart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.Transport;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
public class mailsend {
private String Filename="";
private String From="marketing@acg.com.cn";
private String PassWord="kk@78ms";
private String SmtpHost="smtp.acg.com.cn";
private String Subject="";
private String Text="";
private String To="";
private String UserName="marketing@acg.com.cn";
private boolean needAuth=true;
private String errorstring;
public void setFilename(String Filename) {
this.Filename = Filename;
}
public String getFilename() {
return Filename;
}
public void setFrom(String From) {
this.From = From;
}
public String getFrom() {
return From;
}
public void setPassWord(String PassWord) {
this.PassWord = PassWord;
}
public String getPassWord() {
return PassWord;
}
public String errorstring() {
return errorstring;
}
public void setSmtpHost(String SmtpHost) {
this.SmtpHost = SmtpHost;
}
public String getSmtpHost() {
return SmtpHost;
}
public void setSubject(String Subject) {
this.Subject = Subject;
}
public String getSubject() {
return Subject;
}
public void setBody(String Text) {
this.Text = Text;
}
public String getText() {
return Text;
}
public void setUserName(String UserName) {
this.UserName = UserName;
}
public String getUserName() {
return UserName;
}
public void setNeedAuth(boolean needAuth) {
this.needAuth = needAuth;
}
public boolean getNeedAuth() {
return needAuth;
}
public void addAddress(String to){
this.To=this.To+to+",";
}
public void Address(String to){
this.To=to;
}
public InternetAddress[] getAddress(){
try{
this.To=this.To.substring(0,this.To.length()-1);
String[] tempstr=this.To.split(",");
InternetAddress[] address=new InternetAddress[tempstr.length];
for (int i=0;i<tempstr.length;i++){
address[i]=new InternetAddress(tempstr[i]);
}
return address;
}catch(Exception e){System.out.println(e.getMessage());}
return null;
}
public BodyPart getBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>" + mailBody, "text/html;charset=GB2312");
return bp;
}
catch (Exception e) {
errorstring="设置邮件正文时发生错误!" + e;
return null;
}
}
public BodyPart addFileAffix(String filename) {
System.out.println("增加邮件附件:" + filename);
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
return bp;
}
catch (Exception e) {
System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
return null;
}
}
public boolean SendNow(){
try {
Properties props = new Properties();
Session sendMailSession;
Store store;
Multipart mp=new MimeMultipart();
mp.addBodyPart(getBody(this.Text));
if (!"".equals(this.Filename))
mp.addBodyPart(addFileAffix(this.Filename));
props.put("mail.smtp.host", this.SmtpHost);
props.put("mail.smtp.port","25");
if (this.needAuth)
props.put("mail.smtp.auth", "true");
else
props.put("mail.smtp.auth", "false");
sendMailSession = Session.getInstance(props, null);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(this.From));
newMessage.setSubject(this.Subject);
newMessage.addRecipients(Message.RecipientType.TO,getAddress());
newMessage.setSentDate(new java.util.Date());
newMessage.setContent(mp);
newMessage.saveChanges();
Transport transport = sendMailSession.getTransport("smtp");
transport.connect(this.SmtpHost, this.UserName, this.PassWord);
transport.sendMessage(newMessage,newMessage.getRecipients(Message.RecipientType.TO));
errorstring="发送邮件成功!";
transport.close();
return true;
}
catch (MessagingException m) {
errorstring="发送失败:"+m.toString();
}
return false;
}
}