java mail 通过代理发邮件或直接发送邮件

    技术2025-02-17  20

    /** * 需要的jar包activation.jar,j2ee.jar,mail.jar ,在资源java mail开发所需jar包中有下载 */

    import java.util.Date;import java.util.Properties;import java.security.Security;import javax.mail.Address;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;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());//      final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";     //设置代理服务器      Properties props = System.getProperties();      props.setProperty("proxySet", "true");      props.setProperty("socksProxyHost", "192.168.1.1");      props.setProperty("socksProxyPort", "1080");      props.setProperty("mail.smtp.host", "smtp.163.com");           //props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);      props.setProperty("mail.smtp.socketFactory.fallback", "false");      props.setProperty("mail.smtp.port", "25");      props.setProperty("mail.smtp.socketFactory.port", "25");      props.put("mail.smtp.auth", "true");      props.put("mail.debug", "true");      props.put("mail.store.protocol", "pop3");      props.put("mail.transport.protocol", "smtp");     final String username = "用户名";     final String password = "密码";          //使用验证      Session session = Session.getDefaultInstance(props,             new Authenticator() {                 protected javax.mail.PasswordAuthentication getPasswordAuthentication() {                     return new javax.mail.PasswordAuthentication(username,                              password);                  }              });      MimeMessage message = new MimeMessage(session);      Address address = new InternetAddress("xulei_19850322@163.com");      Address toAaddress = new InternetAddress("xulei_19850322@yahoo.com.cn");           message.setFrom(address);      message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);      message.setSubject("测试");      message.setText("test");      message.setSentDate(new Date());      Transport.send(message);      System.out.println("邮件发送!");

        } public void sendmail() {  try {   String host = "smtp.163.com";   String from = "xulei_19850322@163.com";   String to = "xulei_19850322@yahoo.com.cn";   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", "192.168.1.1");   props.setProperty("socksProxyPort", "808");   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);  } }}

    最新回复(0)