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 = "[email protected]";

   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

你可能感兴趣的:(email)