java Email发送及中文乱码处理。

public class mail
{

  private String pop3Server="";
  private String smtpServer="";

  private String srcMailAddr="";
  private String user="";
  private String password="";

    public mail()
    {
    }
    public boolean getConfig(){

      this.pop3Server="pop.163.com";
      this.smtpServer="smtp.163.com";

      this.srcMailAddr="cup209@163.com";
      this.user="cup209";
      this.password="******";

      return true;
    }
    public boolean checkMailAddr(String mailAddr){
      if(null==mailAddr){
        return false;
      }
      return mailAddr.matches("^[a-z0-9A-Z_]{1,}@[a-z0-9A-Z_]{1,}$");
    }
    public boolean send(String dstMailAddr,String subject,String content){

        if(checkMailAddr(dstMailAddr)){
        System.out.print("send mail fail:dst mail addr error");
        return false;
      }
        try
        {
            this.getConfig();
            Properties props = new Properties();
            Session sendMailSession;
            Store store;
            Transport transport;
            props.put("mail.smtp.auth","true");
            props.put("mail.smtp.host", this.smtpServer); //smtp主机名。
            props.put("mail.smtp.user",this.srcMailAddr); //发送方邮件地址。
            props.put("mail.smtp.password",this.password); //邮件密码。
            PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
            PasswordAuthentication pop = popA.performCheck(this.user,this.password); //填写用户名及密码
            sendMailSession = Session.getInstance(props, popA);
            Message newMessage = new MimeMessage(sendMailSession);
            newMessage.setFrom(new InternetAddress(this.srcMailAddr));
            newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(dstMailAddr));  //接收方邮件地址
            newMessage.setSubject(Tool.convertGBK2UTF8(subject));
            newMessage.setSentDate(new Date());
            String mailContent=content;
           try{
               newMessage.setText(Tool.gbToUtf8(mailContent)); //邮件正文
           }catch(Exception e){}
            //newMessage.setContent(content,"text/html;charset=GBK");
            transport = sendMailSession.getTransport("smtp");
            transport.send(newMessage);


        }
        catch (MessagingException ex)
        {
            ex.printStackTrace();
            return false;
        }
        return true;
    }

    public static void main(String[] args)
    {
        mail sml = new mail();
        sml.send("cup209@163.com","测试邮件","<a href='http://www.163.com'>测试邮件内容</a>");
    }

    public class PopupAuthenticator extends Authenticator{
        String username=null;
        String password=null;
        public PopupAuthenticator(){}
        public PasswordAuthentication performCheck(String user,String pass){
            username = user;
            password = pass;
            return getPasswordAuthentication();
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }

    }
}

 

转载于:https://www.cnblogs.com/jqy518/p/3305810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值