java 发送邮件

来源:互联网 发布:澄海美工招聘 编辑:程序博客网 时间:2024/06/17 00:15
//认证public class Authentication extends Authenticator{      String username = null;      String password = null;        public Authentication(){        }      public Authentication(String username, String password) {          this.username = username;          this.password = password;      }      protected PasswordAuthentication getPasswordAuthentication(){        PasswordAuthentication pa = new PasswordAuthentication(username, password);        return pa;    }  } //发送方式  html/textpublic class MailSender  {      public boolean sendTextMail(SendMail mailInfo) {          // 判断是否身份认证          Authentication authenticator = null;          Properties pro = mailInfo.getProperties();          if (mailInfo.isValidate()) {              // 如果身份认证,则创建密码验证            authenticator = new Authentication(mailInfo.getUserName(), mailInfo.getPassword());        }          // 根据邮件会话属和密码验证器构发邮件的session          Session sendMailSession = Session.getDefaultInstance(pro,authenticator);          try {            Message mailMessage = new MimeMessage(sendMailSession);            Address from = new InternetAddress(mailInfo.getFromAddress());            mailMessage.setFrom(from);            Address to = new InternetAddress(mailInfo.getToAddress());              mailMessage.setRecipient(Message.RecipientType.TO,to);            mailMessage.setSubject(mailInfo.getSubject());            mailMessage.setSentDate(new Date());            String mailContent = mailInfo.getContent();              mailMessage.setText(mailContent);            Transport.send(mailMessage);              return true;          } catch (MessagingException ex) {              ex.printStackTrace();          }          return false;      }    public boolean sendHtmlMail(SendMail mailInfo){          // 判断是否需要身份认证        Authentication authenticator = null;          Properties pro = mailInfo.getProperties();        if (mailInfo.isValidate()) {              // 如果需要身份认证,则创建一个密码验证器            authenticator = new Authentication(mailInfo.getUserName(), mailInfo.getPassword());        }          // 根据邮件会话属性和密码验证器构造一个发送邮件的session        Session sendMailSession = Session.getDefaultInstance(pro,authenticator);          try {              // 根据session创建一个邮件消息            Message mailMessage = new MimeMessage(sendMailSession);            // 创建邮件发送者地址             Address from = new InternetAddress(mailInfo.getFromAddress());            // 设置邮件消息的发送者            mailMessage.setFrom(from);            // 创建邮件的接收者地址,并设置到邮件消息中            Address to = new InternetAddress(mailInfo.getToAddress());              mailMessage.setRecipient(Message.RecipientType.TO,to);            mailMessage.setSubject(mailInfo.getSubject());            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 ex) {              ex.printStackTrace();          }          return false;      }  }//帐号密码public class SendMail {      private String mailServerHost = "";      private String mailServerPort = "";      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 getProperties(){          Properties p = new Properties();          p.put("mail.smtp.host", this.mailServerHost);          p.put("mail.smtp.port", this.mailServerPort);          p.put("mail.smtp.auth", "true");          p.put("mail.smtp.protocol", "SMTP");        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 boolean isValidate() {          return validate;      }      public void setValidate(boolean validate) {          this.validate = validate;      }      public String[] getAttachFileNames() {          return attachFileNames;      }      public void setAttachFileNames(String[] fileNames) {          this.attachFileNames = fileNames;      }      public String getFromAddress() {          return fromAddress;      }      public void setFromAddress(String fromAddress) {          this.fromAddress = fromAddress;      }      public String getPassword() {          return password;      }      public void setPassword(String password) {          this.password = password;      }      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 getSubject() {          return subject;      }      public void setSubject(String subject) {          this.subject = subject;      }      public String getContent() {          return content;      }      public void setContent(String textContent) {          this.content = textContent;      }  } //调用    public static void main(String[] args){          //设置邮件参数          SendMail mail = new SendMail();          String body = "<div style='width:500px;height:100px;font-size:20px;border:solid red;'>代理登录</div>";           mail.setValidate(true);          mail.setToAddress("");  //接受者邮箱地        mail.setSubject("代理登录");        mail.setContent(body);        MailSender sms = new MailSender();          boolean result =  sms.sendHtmlMail(mail);//发html格式          System.out.println(result);    } 


关于这个发送邮箱的问题:

myeclipse中的某个jar包库里面EE_5里面多个mail.jar的包,要删掉,具体哪个包记不得了,可以百度一下。

每种邮箱的port都不一样。

发送者邮箱的设置里面要打开POP3/SMTP服务 

原创粉丝点击