zoukankan      html  css  js  c++  java
  • java发送email(含代理方式,ssl方式,传统方式)

    package spring.vhostall.com;
    import java.security.Security;
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.Address;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    public class MailTest {
    /**
     * 通过代理发送邮件
     */
        /**
          * @param args
         */
        public static void main(String[] args) throws Exception {
         MailTest test = new MailTest();
         //发送邮件
    //     test.sendmail();
         //通过代理发送邮件
         test.sendMailByProxy();
         }
    
        private void sendMailByProxy()throws Exception{
              Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
         //设置代理服务器
          Properties props = System.getProperties();
          props.setProperty("proxySet", "true");
          props.setProperty("socksProxyHost", "43.82.112.214");
          props.setProperty("socksProxyPort", "1080");
          props.setProperty("mail.smtp.host", "smtp.163.com");
          props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
          props.setProperty("mail.smtp.socketFactory.fallback", "false");
          props.setProperty("mail.smtp.port", "465");
          props.setProperty("mail.smtp.socketFactory.port", "465");
          props.setProperty("mail.smtp.auth", "true");
          props.setProperty("mail.debug", "true");
          props.setProperty("mail.transport.protocol", "smtp");
         final String username = "****";
         final String password = "****";
         
         //使用验证
          Session session = Session.getDefaultInstance(props,
                 new javax.mail.Authenticator() {
                     protected PasswordAuthentication getPasswordAuthentication() {
                         return new javax.mail.PasswordAuthentication(username,password);
                      }
                  });
          MimeMessage message = new MimeMessage(session);
          Address address = new InternetAddress("****");
          Address toAaddress = new InternetAddress("****");
         
          message.setFrom(address);
          message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
          message.setSubject("测试");
          message.setText("test");
          message.setSentDate(new Date());
          Transport transport = session.getTransport();
          transport.connect("smtp.163.com","****","****");
          transport.sendMessage(message, new Address[] {new InternetAddress("****")});
    //      Transport.send(message);
          System.out.println("邮件发送!");
          transport.close();
          
        }
     public void sendmail() {/*
      try {
       String host = "smtp.gmail.com";
       String from = "demo@163.com";
       String to = "@163.com";
       String username = "****";
       String password = "****";
       String body = "This is a test";
       String subject = "Email Test";
       SmtpAuth sa = new SmtpAuth();
       sa.getuserinfo(username, password);
       Session session;
       MimeMessage message;
       Properties props = System.getProperties();
       props.setProperty("proxySet", "true");
       props.setProperty("socksProxyHost", "43.82.218.50");
       props.setProperty("socksProxyPort", "8080");
       props.put("mail.smtp.auth", "true");
       props.put("mail.smtp.host", host);
       session = Session.getInstance(props, sa);
       session.setDebug(true);
       message = new MimeMessage(session);
       message.setFrom(new InternetAddress(from));
       message.setRecipient(Message.RecipientType.TO, new InternetAddress(
         to));
       message.setSubject(subject);
       MimeBodyPart mbp = new MimeBodyPart();
       mbp.setText(body);
       Multipart mp = new MimeMultipart();
       mp.addBodyPart(mbp);
       message.setContent(mp);
       message.setSentDate(new java.util.Date());
       Transport transport = session.getTransport("smtp");
       transport.connect(host, username, password);
       transport.send(message);
      } catch (MessagingException e) {
       System.out.println("error" + e.getMessage());
      }
     */}
    
     class SmtpAuth extends javax.mail.Authenticator {
      private String user, password;
    
      public void getuserinfo(String getuser, String getpassword) {
       user = getuser;
       password = getpassword;
      }
    
      protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
       return new javax.mail.PasswordAuthentication(user, password);
      }
     }
    }

    依赖的jar包:http://download.csdn.net/detail/wu858773457/8699111

  • 相关阅读:
    解决VS在查找预编译头使用时跳过
    Very Sleepy使用图文教程
    将Excel数据导入到ArcGIS属性表
    2016工作计划
    免费GIS数据下载网站推荐
    WIN7 (64 位)安装AutoCAD2012失败解决方法
    .resources文件转.resx 文件
    同一Session中的aspx页面的并发限制
    Diving Into Lync Client Logins
    Passing JavaScript Objects to Managed Code
  • 原文地址:https://www.cnblogs.com/sprinng/p/4505796.html
Copyright © 2011-2022 走看看