|
package net.zhang.common.tools.mail; import javax.mail.*;
public class EmailAuthenticator extends Authenticator{ private String username; private String userpassword; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpassword() { return userpassword; } public void setUserpassword(String userpassword) { this.userpassword = userpassword; } public EmailAuthenticator(String username,String userpassword){ super(); this.username=username; this.userpassword=userpassword; } public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(username,userpassword); } }
package net.zhang.common.tools.mail;
import javax.mail.Address;
public class MailForm { private String host; private String from; private String to; private String subject; private String content; private String file; public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getFile() { return file; } public void setFile(String file) { this.file = file; } public String getFrom() { return from; }
public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public void setFrom(String from) { this.from = from; }
}
package net.zhang.common.tools.mail;
import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Properties;
import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.NoSuchProviderException; import javax.mail.Part; import javax.mail.Session; import javax.mail.Store; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart;
public class MailServer { private EmailAuthenticator emailAuthenticator; private String username; private String userpassword; public MailServer(String username,String userpassword){ emailAuthenticator=new EmailAuthenticator(username,userpassword); this.username=username; this.userpassword=userpassword; } public void sendMail(MailForm mailForm){
try { Properties props=System.getProperties(); props.put("mail.smtp.host",mailForm.getHost() ); props.put("mail.smtp.auth", "true"); Session session=Session.getInstance(props, emailAuthenticator); MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress(mailForm.getFrom())); message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailForm.getTo())); message.setSubject(mailForm.getSubject()); BodyPart messageBodyPart=new MimeBodyPart(); messageBodyPart.setText(mailForm.getContent()); Multipart multipart=new MimeMultipart(); multipart.addBodyPart(messageBodyPart); messageBodyPart=new MimeBodyPart(); DataSource source=new FileDataSource(mailForm.getFile()); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(mailForm.getFile()); multipart.addBodyPart(messageBodyPart); message.setContent(multipart); message.saveChanges(); Transport transport=session.getTransport("smtp"); transport.connect(mailForm.getHost(), username, userpassword); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("邮件发送成功"); } catch (AddressException e) { System.err.println("address exception"); e.printStackTrace(); } catch (MessagingException e) { System.err.println("message exception"); e.printStackTrace(); }
} }
|