邮箱发送功能的轻量级实现

邮箱发送实现代码实现

 

邮箱发送实现代码:

 

MailSenderInfo

 

package util.email;

 

import java.util.Properties;

 

public class MailSenderInfo {

 

        private String mailServerHost;

   

        private String mailServerPort = "25";

   

        private String fromAddress;

   

        private String toAddress;

   

        private String userName;

   

        private String password;

   

        private boolean validate = false;

   

        private String subject;

   

        private String content;

   

        private String[] attachFileNames;

   

        public Properties getPropertes() {

      

           Properties p = new Properties();

           p.put("mail.smtp.host", this.mailServerHost);

           p.put("mail.smtp.port", this.mailServerPort);

           p.put("mail.smtp.auth", validate ? "true" : "false");

      

           return p;

      

        }

 

        public String getMailServerHost() {

           return mailServerHost;

        }

 

        public void setMailServerHost(String mailServerHost) {

           this.mailServerHost = mailServerHost;

        }

 

        public String getMailServerPort() {

           return mailServerPort;

        }

 

        public void setMailServerPort(String mailServerPort) {

           this.mailServerPort = mailServerPort;

        }

 

        public String getFromAddress() {

           return fromAddress;

        }

 

        public void setFromAddress(String fromAddress) {

           this.fromAddress = fromAddress;

        }

 

        public String getToAddress() {

           return toAddress;

        }

 

        public void setToAddress(String toAddress) {

           this.toAddress = toAddress;

        }

 

        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 boolean isValidate() {

           return validate;

        }

 

        public void setValidate(boolean validate) {

           this.validate = validate;

        }

 

        public String getSubject() {

           return subject;

        }

 

        public void setSubject(String subject) {

           this.subject = subject;

        }

 

        public String getContent() {

           return content;

        }

 

        public void setContent(String content) {

           this.content = content;

        }

 

        public String[] getAttachFileNames() {

           return attachFileNames;

        }

 

        public void setAttachFileNames(String[] attachFileNames) {

           this.attachFileNames = attachFileNames;

        }

}

 

MyAuthenticator

 

package util.email;

 

import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;

 

public class MyAuthenticator extends Authenticator {

 

        String userName = null;

        String password = null;

   

        public MyAuthenticator() {

      

        }

   

        public MyAuthenticator(String userName, String password) {

      

           this.userName = userName;

           this.password = password;

        }

   

        protected PasswordAuthentication getPasswordAuthentication() {

      

           return new PasswordAuthentication(userName, password);

        }

   

        public static void main(String[] args) {

      

           MailSenderInfo mailInfo = new MailSenderInfo();

           mailInfo.setMailServerHost("smtp.163.com");

           mailInfo.setMailServerPort("25");

           mailInfo.setValidate(true);

            mailInfo.setUserName("zhangjinpeng66@163.com");

           mailInfo.setPassword("*************");

           mailInfo.setFromAddress("zhangjinpeng66@163.com");

           mailInfo.setToAddress("zhangjinpeng66@163.com");

           mailInfo.setSubject("设置邮箱标题");

            mailInfo.setContent("设置邮箱内容");

      

           SimpleMailSender sms = new SimpleMailSender();

           sms.sendHtmlMail(mailInfo);

        }

}

 

SimpleMailSender

package util.email;

 

import java.util.Date;

import java.util.Properties;

 

import javax.mail.Address;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

import javax.mail.Session;

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 SimpleMailSender {

 

        public boolean sendTextMail(MailSenderInfo mailInfo) {

 

           MyAuthenticator authenticator = null;

           Properties pro = mailInfo.getPropertes();

 

           if (mailInfo.isValidate()) {

 

             authenticator = new MyAuthenticator(mailInfo.getUserName(),

                  mailInfo.getPassword());

           }

 

           Session sendMailSession = Session

              .getDefaultInstance(pro, authenticator);

 

           Message mailMessage = new MimeMessage(sendMailSession);

 

           Address from = null;

 

           try {

               from = new InternetAddress(mailInfo.getFromAddress());

           } catch (AddressException e) {

 

               e.printStackTrace();

            }

 

           try {

               mailMessage.setFrom(from);

           } catch (MessagingException e) {

 

               e.printStackTrace();

           }

 

           Address to = null;

           try {

               to = new InternetAddress(mailInfo.getFromAddress());

           } catch (AddressException e) {

 

               e.printStackTrace();

           }

 

           try {

               mailMessage.setRecipient(Message.RecipientType.TO, to);

           } catch (MessagingException e) {

 

               e.printStackTrace();

           }

 

           try {

 

               mailMessage.setSubject(mailInfo.getSubject());

               mailMessage.setSentDate(new Date());

 

               String mailContent = mailInfo.getContent();

               mailMessage.setText(mailContent);

 

               Transport.send(mailMessage);

 

               return true;

 

           } catch (MessagingException e) {

 

               e.printStackTrace();

           }

 

           return false;

        }

 

        public boolean sendHtmlMail(MailSenderInfo mailInfo) {

 

           MyAuthenticator authenticator = null;

           Properties pro = mailInfo.getPropertes();

 

           if (mailInfo.isValidate()) {

 

               authenticator = new MyAuthenticator(mailInfo.getUserName(),

                  mailInfo.getPassword());

           }

      

           Session sendMailSession = Session.getDefaultInstance(pro, authenticator);

      

           Message mailMessage = new MimeMessage(sendMailSession);

      

           Address from = null;

           try {

               from = new InternetAddress(mailInfo.getFromAddress());

            } catch (AddressException e) {

          

               e.printStackTrace();

           }

           try {

               mailMessage.setFrom(from);

           } catch (MessagingException e) {

          

               e.printStackTrace();

           }

      

           Address to = null;

           try {

               to = new InternetAddress(mailInfo.getToAddress());

           } catch (AddressException e) {

          

               e.printStackTrace();

           }

           try {

               mailMessage.setSubject(mailInfo.getSubject());

               mailMessage.setRecipient(Message.RecipientType.TO, to);

               mailMessage.setSentDate(new Date());

               Multipart mainPart = new MimeMultipart();

               BodyPart html = new MimeBodyPart();

               html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");

           mainPart.addBodyPart(html);

           mailMessage.setContent(mainPart);

           Transport.send(mailMessage);

          

           return true;

       } catch (MessagingException e) {

          

           e.printStackTrace();

       }

      

       return false;

    }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值