Java发送邮件2011-04-03
public class MailSender {/** * 发送单个邮件 * @throws Exception */public void sendMail() throws Exception{Properties props = new Properties();//创建属性对象props.put("mail.smtp.host", getHost());//设置smtp服务器地址props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证Session session = Session.getInstance(props, null);//创建新邮件并群发//Session session = Session.getDefaultInstance(props);//session.setDebug(true);MimeMessage message = new MimeMessage(session);//创建过程对象message.setFrom(new InternetAddress(getFromAddr()));message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));message.setSubject(getTitle());//设置主题Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容multipart. addBodyPart(contentPart);if(getAttachPath() != null && getAttachName() != null){BodyPart attachmentPart= new MimeBodyPart();DataSource source = new FileDataSource(getAttachPath());attachmentPart.setDataHandler(new DataHandler(source)); BASE64Encoder enc = new BASE64Encoder();attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");multipart.addBodyPart(attachmentPart);}message.setContent(multipart);message.saveChanges();Transport transport = session.getTransport("smtp");transport.connect(host, getUsername(), getPassword());transport.sendMessage(message, message.getAllRecipients());transport.close();}/** * 群发邮件 * @throws Exception */public void sendMails() throws Exception{Properties props = new Properties();//创建属性对象props.put("mail.smtp.host", getHost());//设置smtp服务器地址props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证Session session = Session.getInstance(props, null);//创建新邮件并群发//Session session = Session.getDefaultInstance(props);//session.setDebug(true);MimeMessage message = new MimeMessage(session);//创建过程对象message.setFrom(new InternetAddress(getFromAddr()));//设置发送邮件地址message.setSentDate(new Date());//设置时间InternetAddress[] address = new InternetAddress[this.getMutliTo().length]; //群发地址for(int i = 0; i < this.getMutliTo().length; i++) { //循环发送address[i] = new InternetAddress((this.getMutliTo())[i]); } message.setRecipients(Message.RecipientType.TO, address); // message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));message.setSubject(getTitle());//设置主题Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容multipart. addBodyPart(contentPart);if(getAttachPath() != null && getAttachName() != null){BodyPart attachmentPart= new MimeBodyPart();DataSource source = new FileDataSource(getAttachPath());attachmentPart.setDataHandler(new DataHandler(source)); BASE64Encoder enc = new BASE64Encoder();attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");multipart.addBodyPart(attachmentPart);}message.setContent(multipart);message.saveChanges();Transport transport = session.getTransport("smtp");transport.connect(host, getUsername(), getPassword());transport.sendMessage(message, message.getAllRecipients());transport.close();}private String host = null; //邮件服务器private String fromAddr = null; //发送邮件地址private String toAddr = null; //接收邮件地址private String username = null; //发送邮件用户名private String password = null; //发送邮件密码private String title = null; //邮件标题private String attachPath = null; //邮件附件路径private String attachName = null; //邮件附件名private String sendtext = null; //邮件内容private String[] MutliTo = null; //群发用户public String[] getMutliTo() {return MutliTo;}public void setMutliTo(String[] mutliTo) {MutliTo = mutliTo;}public String getSendtext() {return sendtext;}public void setSendtext(String sendtext) {this.sendtext = sendtext;}public String getHost() {return host;}public void setHost(String host) {this.host = host;}public String getFromAddr() {return fromAddr;}public void setFromAddr(String fromAddr) {this.fromAddr = fromAddr;}public String getToAddr() {return toAddr;}public void setToAddr(String toAddr) {this.toAddr = toAddr;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAttachPath() {return attachPath;}public void setAttachPath(String attachPath) {this.attachPath = attachPath;}public String getAttachName() {return attachName;}public void setAttachName(String attachName) {this.attachName = attachName;}}折射配置文件的内容
#u914du7f6eemailu53d1u9001u6587u4ef6host=smtp.163.comusername=*****password=*****fromadd=*****@163.com