javamail 发送邮件

2023-11-18

转自:http://blog.csdn.net/jbgtwang/archive/2009/06/11/4259787.aspx

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题。为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用。呵呵

以下三段代码是我的全部代码,朋友们如果想用,直接复制即可。jar包因为我不知道怎么传到javaeye上,所以朋友们回去自己打吧。
我的代码有三个类:
第一个类:MailSenderInfo.java

Java代码
1.package com.util.mail;  
2./**  
3.* 发送邮件需要使用的基本信息  
4.*/   
5.import java.util.Properties;   
6.public class MailSenderInfo {   
7.    // 发送邮件的服务器的IP和端口   
8.    private String mailServerHost;   
9.    private String mailServerPort = "25";   
10.    // 邮件发送者的地址   
11.    private String fromAddress;   
12.    // 邮件接收者的地址   
13.    private String toAddress;   
14.    // 登陆邮件发送服务器的用户名和密码   
15.    private String userName;   
16.    private String password;   
17.    // 是否需要身份验证   
18.    private boolean validate = false;   
19.    // 邮件主题   
20.    private String subject;   
21.    // 邮件的文本内容   
22.    private String content;   
23.    // 邮件附件的文件名   
24.    private String[] attachFileNames;     
25.    /**  
26.      * 获得邮件会话属性  
27.      */   
28.    public Properties getProperties(){   
29.      Properties p = new Properties();   
30.      p.put("mail.smtp.host", this.mailServerHost);   
31.      p.put("mail.smtp.port", this.mailServerPort);   
32.      p.put("mail.smtp.auth", validate ? "true" : "false");   
33.      return p;   
34.    }   
35.    public String getMailServerHost() {   
36.      return mailServerHost;   
37.    }   
38.    public void setMailServerHost(String mailServerHost) {   
39.      this.mailServerHost = mailServerHost;   
40.    }  
41.    public String getMailServerPort() {   
42.      return mailServerPort;   
43.    }  
44.    public void setMailServerPort(String mailServerPort) {   
45.      this.mailServerPort = mailServerPort;   
46.    }  
47.    public boolean isValidate() {   
48.      return validate;   
49.    }  
50.    public void setValidate(boolean validate) {   
51.      this.validate = validate;   
52.    }  
53.    public String[] getAttachFileNames() {   
54.      return attachFileNames;   
55.    }  
56.    public void setAttachFileNames(String[] fileNames) {   
57.      this.attachFileNames = fileNames;   
58.    }  
59.    public String getFromAddress() {   
60.      return fromAddress;   
61.    }   
62.    public void setFromAddress(String fromAddress) {   
63.      this.fromAddress = fromAddress;   
64.    }  
65.    public String getPassword() {   
66.      return password;   
67.    }  
68.    public void setPassword(String password) {   
69.      this.password = password;   
70.    }  
71.    public String getToAddress() {   
72.      return toAddress;   
73.    }   
74.    public void setToAddress(String toAddress) {   
75.      this.toAddress = toAddress;   
76.    }   
77.    public String getUserName() {   
78.      return userName;   
79.    }  
80.    public void setUserName(String userName) {   
81.      this.userName = userName;   
82.    }  
83.    public String getSubject() {   
84.      return subject;   
85.    }  
86.    public void setSubject(String subject) {   
87.      this.subject = subject;   
88.    }  
89.    public String getContent() {   
90.      return content;   
91.    }  
92.    public void setContent(String textContent) {   
93.      this.content = textContent;   
94.    }   
95.}  
package com.util.mail;
/**
* 发送邮件需要使用的基本信息
*/
import java.util.Properties;
public class MailSenderInfo {
 // 发送邮件的服务器的IP和端口
 private String mailServerHost;
 private String mailServerPort = "25";
 // 邮件发送者的地址
 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", validate ? "true" : "false");
   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;
 }
}
第二个类:SimpleMailSender.java

Java代码
1.package com.util.mail;  
2. 
3.import java.util.Date;   
4.import java.util.Properties;  
5.import javax.mail.Address;   
6.import javax.mail.BodyPart;   
7.import javax.mail.Message;   
8.import javax.mail.MessagingException;   
9.import javax.mail.Multipart;   
10.import javax.mail.Session;   
11.import javax.mail.Transport;   
12.import javax.mail.internet.InternetAddress;   
13.import javax.mail.internet.MimeBodyPart;   
14.import javax.mail.internet.MimeMessage;   
15.import javax.mail.internet.MimeMultipart;   
16. 
17./**  
18.* 简单邮件(不带附件的邮件)发送器  
19.*/   
20.public class SimpleMailSender  {   
21./**  
22.  * 以文本格式发送邮件  
23.  * @param mailInfo 待发送的邮件的信息  
24.  */   
25.    public boolean sendTextMail(MailSenderInfo mailInfo) {   
26.      // 判断是否需要身份认证   
27.      MyAuthenticator authenticator = null;   
28.      Properties pro = mailInfo.getProperties();  
29.      if (mailInfo.isValidate()) {   
30.      // 如果需要身份认证,则创建一个密码验证器   
31.        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
32.      }  
33.      // 根据邮件会话属性和密码验证器构造一个发送邮件的session   
34.      Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
35.      try {   
36.      // 根据session创建一个邮件消息   
37.      Message mailMessage = new MimeMessage(sendMailSession);   
38.      // 创建邮件发送者地址   
39.      Address from = new InternetAddress(mailInfo.getFromAddress());   
40.      // 设置邮件消息的发送者   
41.      mailMessage.setFrom(from);   
42.      // 创建邮件的接收者地址,并设置到邮件消息中   
43.      Address to = new InternetAddress(mailInfo.getToAddress());   
44.      mailMessage.setRecipient(Message.RecipientType.TO,to);   
45.      // 设置邮件消息的主题   
46.      mailMessage.setSubject(mailInfo.getSubject());   
47.      // 设置邮件消息发送的时间   
48.      mailMessage.setSentDate(new Date());   
49.      // 设置邮件消息的主要内容   
50.      String mailContent = mailInfo.getContent();   
51.      mailMessage.setText(mailContent);   
52.      // 发送邮件   
53.      Transport.send(mailMessage);  
54.      return true;   
55.      } catch (MessagingException ex) {   
56.          ex.printStackTrace();   
57.      }   
58.      return false;   
59.    }   
60.      
61.    /**  
62.      * 以HTML格式发送邮件  
63.      * @param mailInfo 待发送的邮件信息  
64.      */   
65.    public static boolean sendHtmlMail(MailSenderInfo mailInfo){   
66.      // 判断是否需要身份认证   
67.      MyAuthenticator authenticator = null;  
68.      Properties pro = mailInfo.getProperties();  
69.      //如果需要身份认证,则创建一个密码验证器    
70.      if (mailInfo.isValidate()) {   
71.        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());  
72.      }   
73.      // 根据邮件会话属性和密码验证器构造一个发送邮件的session   
74.      Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
75.      try {   
76.      // 根据session创建一个邮件消息   
77.      Message mailMessage = new MimeMessage(sendMailSession);   
78.      // 创建邮件发送者地址   
79.      Address from = new InternetAddress(mailInfo.getFromAddress());   
80.      // 设置邮件消息的发送者   
81.      mailMessage.setFrom(from);   
82.      // 创建邮件的接收者地址,并设置到邮件消息中   
83.      Address to = new InternetAddress(mailInfo.getToAddress());   
84.      // Message.RecipientType.TO属性表示接收者的类型为TO   
85.      mailMessage.setRecipient(Message.RecipientType.TO,to);   
86.      // 设置邮件消息的主题   
87.      mailMessage.setSubject(mailInfo.getSubject());   
88.      // 设置邮件消息发送的时间   
89.      mailMessage.setSentDate(new Date());   
90.      // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象   
91.      Multipart mainPart = new MimeMultipart();   
92.      // 创建一个包含HTML内容的MimeBodyPart   
93.      BodyPart html = new MimeBodyPart();   
94.      // 设置HTML内容   
95.      html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");   
96.      mainPart.addBodyPart(html);   
97.      // 将MiniMultipart对象设置为邮件内容   
98.      mailMessage.setContent(mainPart);   
99.      // 发送邮件   
100.      Transport.send(mailMessage);   
101.      return true;   
102.      } catch (MessagingException ex) {   
103.          ex.printStackTrace();   
104.      }   
105.      return false;   
106.    }   
107.}  
package com.util.mail;

import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
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 SimpleMailSender  {
/**
  * 以文本格式发送邮件
  * @param mailInfo 待发送的邮件的信息
  */
 public boolean sendTextMail(MailSenderInfo mailInfo) {
   // 判断是否需要身份认证
   MyAuthenticator authenticator = null;
   Properties pro = mailInfo.getProperties();
   if (mailInfo.isValidate()) {
   // 如果需要身份认证,则创建一个密码验证器
  authenticator = new MyAuthenticator(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());
   // 设置邮件消息的主要内容
   String mailContent = mailInfo.getContent();
   mailMessage.setText(mailContent);
   // 发送邮件
   Transport.send(mailMessage);
   return true;
   } catch (MessagingException ex) {
    ex.printStackTrace();
   }
   return false;
 }
 
 /**
   * 以HTML格式发送邮件
   * @param mailInfo 待发送的邮件信息
   */
 public static boolean sendHtmlMail(MailSenderInfo mailInfo){
   // 判断是否需要身份认证
   MyAuthenticator authenticator = null;
   Properties pro = mailInfo.getProperties();
   //如果需要身份认证,则创建一个密码验证器 
   if (mailInfo.isValidate()) {
  authenticator = new MyAuthenticator(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());
   // Message.RecipientType.TO属性表示接收者的类型为TO
   mailMessage.setRecipient(Message.RecipientType.TO,to);
   // 设置邮件消息的主题
   mailMessage.setSubject(mailInfo.getSubject());
   // 设置邮件消息发送的时间
   mailMessage.setSentDate(new Date());
   // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
   Multipart mainPart = new MimeMultipart();
   // 创建一个包含HTML内容的MimeBodyPart
   BodyPart html = new MimeBodyPart();
   // 设置HTML内容
   html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
   mainPart.addBodyPart(html);
   // 将MiniMultipart对象设置为邮件内容
   mailMessage.setContent(mainPart);
   // 发送邮件
   Transport.send(mailMessage);
   return true;
   } catch (MessagingException ex) {
    ex.printStackTrace();
   }
   return false;
 }
}


第三个类:MyAuthenticator.java

Java代码
1.package com.util.mail;  
2. 
3.import javax.mail.*;  
4.    
5.public class MyAuthenticator extends Authenticator{  
6.    String userName=null;  
7.    String password=null;  
8.       
9.    public MyAuthenticator(){  
10.    }  
11.    public MyAuthenticator(String username, String password) {   
12.        this.userName = username;   
13.        this.password = password;   
14.    }   
15.    protected PasswordAuthentication getPasswordAuthentication(){  
16.        return new PasswordAuthentication(userName, password);  
17.    }  
18.}  
19.  
package com.util.mail;

import javax.mail.*;
 
public class MyAuthenticator extends Authenticator{
 String userName=null;
 String password=null;
 
 public MyAuthenticator(){
 }
 public MyAuthenticator(String username, String password) {
  this.userName = username;
  this.password = password;
 }
 protected PasswordAuthentication getPasswordAuthentication(){
  return new PasswordAuthentication(userName, password);
 }
}
 

下面给出使用上面三个类的代码:

Java代码
1.public static void main(String[] args){  
2.         //这个类主要是设置邮件  
3.      MailSenderInfo mailInfo = new MailSenderInfo();   
4.      mailInfo.setMailServerHost("smtp.163.com");   
5.      mailInfo.setMailServerPort("25");   
6.      mailInfo.setValidate(true);   
7.      mailInfo.setUserName("han2000lei@163.com");   
8.      mailInfo.setPassword("**********");//您的邮箱密码   
9.      mailInfo.setFromAddress("han2000lei@163.com");   
10.      mailInfo.setToAddress("han2000lei@163.com");   
11.      mailInfo.setSubject("设置邮箱标题");   
12.      mailInfo.setContent("设置邮箱内容");   
13.         //这个类主要来发送邮件  
14.      SimpleMailSender sms = new SimpleMailSender();  
15.          sms.sendTextMail(mailInfo);//发送文体格式   
16.          sms.sendHtmlMail(mailInfo);//发送html格式  
17.    } 
public static void main(String[] args){
         //这个类主要是设置邮件
   MailSenderInfo mailInfo = new MailSenderInfo();
   mailInfo.setMailServerHost("smtp.163.com");
   mailInfo.setMailServerPort("25");
   mailInfo.setValidate(true);
   mailInfo.setUserName("han2000lei@163.com");
   mailInfo.setPassword("**********");//您的邮箱密码
   mailInfo.setFromAddress("han2000lei@163.com");
   mailInfo.setToAddress("han2000lei@163.com");
   mailInfo.setSubject("设置邮箱标题");
   mailInfo.setContent("设置邮箱内容");
         //这个类主要来发送邮件
   SimpleMailSender sms = new SimpleMailSender();
          sms.sendTextMail(mailInfo);//发送文体格式
          sms.sendHtmlMail(mailInfo);//发送html格式
 }

最后,给出朋友们几个注意的地方:
1、使用此代码你可以完成你的javamail的邮件发送功能。三个类缺一不可。
2、这三个类我打包是用的com.util.mail包,如果不喜欢,你可以自己改,但三个类文件必须在同一个包中
3、不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“smtp.163.com”。因为你发不出去。刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。要使用你经常用的邮箱,而且时间比较长的。
4、另一个问题就是mailInfo.setMailServerHost("smtp.163.com");与mailInfo.setFromAddress("han2000lei@163.com");这两句话。即如果你使用163smtp服务器,那么发送邮件地址就必须用163的邮箱,如果不的话,是不会发送成功的。
5、关于javamail验证错误的问题,网上的解释有很多,但我看见的只有一个。就是我的第三个类。你只要复制全了代码,我想是不会有问题的。
6、如果出现连接失败的情况,那可能是你连的邮件服务器不支持pop或smtp像126、163的免费邮箱就关闭

此功能。像新浪、qq邮箱要登陆到web页面设置账户放开这项功能才可用。

7、邮箱服务器端口一般是开放:25

部分邮箱服务器

常用邮箱POP、SMTP服务器列表

21cn.com
POP3服务器:pop.21cn.com
SMTP服务器:smtp.21cn.com

sina.com
POP3服务器:pop3.sina.com.cn
SMTP服务器:smtp.sina.com.cn

263.sina.com
POP3服务器:pop3.263.sina.com
SMTP服务器:smtp.263.sina.com

163.net
POP3服务器:pop.163.net
SMTP服务器:smtp.163.net

tom.com
POP3服务器:pop.tom.com
SMTP服务器:smtp.tom.com

163.com
POP3服务器:pop.163.com
SMTP服务器:smtp.163.com

qq.com
POP3服务器:pop.qq.com
SMTP服务器:smtp.qq.com

56.com
POP3服务器:pop3.56.com
SMTP服务器:smtp.56.com

188.com
POP3服务器:pop.188.com
SMTP服务器:smtp.188.com

gmail.com
POP3服务器:pop.gmail.com
SMTP服务器:smtp.gmail.com

mailandnews.com
POP3服务器:mailandnews.com
SMTP服务器:mailandnews.com

campusall.com
POP3服务器:pop3.campusall.com
SMTP服务器:smtp.campusall.com

39.net
POP3服务器:pop3.39.net
SMTP服务器:smtp.39.net

yimeier.net
POP3服务器:pop.www.yimeier.net
SMTP服务器:smtp.www.yimeier.net

citiz.net
POP3服务器:pop.citiz.net
SMTP服务器:smtp.citiz.net

stedu.cn
POP3服务器:pop.stedu.net
SMTP服务器:smtp.stedu.net

stu.edu.cn
POP3服务器:pop.stu.edu.cn
SMTP服务器:smtp.stu.edu.cn

zj.com
POP3服务器:pop.zj.com
SMTP服务器:smtp.zj.com

pku.edu.cn
POP3服务器:water.pku.edu.cn
SMTP服务器:water.pku.edu.cn

51uc.com
POP3服务器:pop3.51uc.com
SMTP服务器:smtp.51uc.com

hzdtv.com
POP3服务器:mail.hzdtv.com
SMTP服务器:mail.hzdtv.com

foxmail.com.cn
POP3服务器:pop.foxmail.com.cn
SMTP服务器:smtp.foxmail.com.cn

mail.bodachina.com
POP3服务器:mail.bodachina.com
SMTP服务器:mail.bodachina.com

vip.sina.com
POP3服务器:pop3.vip.sina.com
SMTP服务器:smtp.vip.sina.com

sina.cn
POP3服务器:pop3.vip.sina.com
SMTP服务器:smtp.vip.sina.com

my3ia.sina.com
POP3服务器:pop3.my3ia.sina.com
SMTP服务器:smtp.my3ia.sina.com

sina100.com
POP3服务器:pop3.sina100.com
SMTP服务器:smtp.sina100.com

vip.163.com
POP3服务器:pop.vip.163.com
SMTP服务器:smtp.vip.163.com

126.com
POP3服务器:pop3.126.com
SMTP服务器:smtp.126.com

fm365.com
POP3服务器:mail.fm365.com
SMTP服务器:mail.fm365.com

263.net
POP3服务器:263.net
SMTP服务器:smtp.263.net

x263.net
POP3服务器:pop.x263.net
SMTP服务器:smtp.x263.net

263.net.cn
POP3服务器:263.net.cn
SMTP服务器:263.net.cn

elong.com
POP3服务器:pop3.elong.com
SMTP服务器:smtp.elong.com

chinaren.com
POP3服务器:pop.chinaren.com
SMTP服务器:

km169.net
POP3服务器:email.km169.net
SMTP服务器:email.km169.net

cmmail.com
POP3服务器:pop3.cmmail.com
SMTP服务器:smtp.cmmail.com

china.com
POP3服务器:pop.china.com
SMTP服务器:smtp.china.com

cww.com
POP3服务器:pop.china.com
SMTP服务器:smtp.china.com

eazier.com
POP3服务器:pop.easier.com
SMTP服务器:smtp.eazier.com

sohu.com
POP3服务器:pop3.sohu.com
SMTP服务器:smtp.sohu.com

vip.sohu.com
POP3服务器:pop3.vip.sohu.com
SMTP服务器:smtp.vip.sohu.com

sohu.net
POP3服务器:pop3.sohu.net
SMTP服务器:smtp.sohu.net

fd21.com
POP3服务器:pop.fd21.com
SMTP服务器:smtp.fd21.com

online.sh.cn
POP3服务器:pop.citiz.net
SMTP服务器:smtp.citiz.net

yeah.net
POP3服务器:pop.yeah.net
SMTP服务器:smtp.yeah.net

netease.com
POP3服务器:pop.netease.com
SMTP服务器:smtp.netease.com

etang.com
POP3服务器:pop.free.etang.com
SMTP服务器:smtp.free.etang.com

myrice.com
POP3服务器:pop.myrice.com
SMTP服务器:smtp.myrice.com

wx88.net
POP3服务器:mail.wx88.net
SMTP服务器:mail.wx88.net

email.com.cn
POP3服务器:www.email.com.cn
SMTP服务器:www.email.com.cn

cn99.com
POP3服务器:pop.cn99.com
SMTP服务器:

tonghua.com.cn
POP3服务器:pop3.tonghua.com.cn
SMTP服务器:smtp.tonghua.com.cn

china1mail.com
POP3服务器:mail.china1mail.com
SMTP服务器:

371.net
POP3服务器:371.net
SMTP服务器:smtp.371.net

kali.com.cn
POP3服务器:pop.kali.com.cn
SMTP服务器:smtp.kali.com.cn

focus.com.cn
POP3服务器:pop3.focus.com.cn
SMTP服务器:smtp.focus.com.cn

8848.net
POP3服务器:pop.8848.net
SMTP服务器:smtp.8848.net

ucs.com.tw
POP3服务器:210.66.17.1
SMTP服务器:

mailbox.com.cn
POP3服务器:email.com.cn
SMTP服务器:email.com.cn

990.net
POP3服务器:pop.990.net
SMTP服务器:990.net

88998.com
POP3服务器:202.100.222.86
SMTP服务器:202.100.222.86

ctn.com.cn
POP3服务器:mail.ctn.com.cn
SMTP服务器:

2911.net
POP3服务器:pop.2911.net
SMTP服务器:smtp.2911.net

soim.net
POP3服务器:freemail.soim.com
SMTP服务器:freemail.soim.com

sh.soim.com
POP3服务器:sh.soim.com
SMTP服务器:

777.net.cn
POP3服务器:mail.777.net.cn
SMTP服务器:mail.777.net.cn

telekbird.com.cn
POP3服务器:pop.telekbird.com.cn
SMTP服务器:smtp.telekbird.com.cn

btamail.net.cn
POP3服务器:btamail.net.cn
SMTP服务器:btamail.net.cn

chinanew.com
POP3服务器:chinanew.com
SMTP服务器:

gzyp21.net
POP3服务器:gzyp21.net
SMTP服务器:gzyp21.net

freemail.online.tj.cn
POP3服务器:freemail.online.tj.cn
SMTP服务器:freemail.online.tj.cn

363.net
POP3服务器:363.net
SMTP服务器:smtp.363.net

dl163.com
POP3服务器:www.dl163.com
SMTP服务器:www.dl163.com

chinaxian.com
POP3服务器:www.email.com.cn
SMTP服务器:www.email.com.cn

chinese.com
POP3服务器:pop.chinese.com
SMTP服务器:smtp.chinese.com

china183.com
POP3服务器:mail.china183.com
SMTP服务器:mail.china183.com

elawchina.com
POP3服务器:pop3.elawchina.com
SMTP服务器:smtp.elawchina.com

mybada.net
POP3服务器:pop.mybada.net
SMTP服务器:smtp.mybada.net

gz168.net
POP3服务器:email.gz168.net
SMTP服务器:email.gz168.net

kzinfo.net
POP3服务器:mail.kzinfo.net
SMTP服务器:mail.kzinfo.net

ccidnet.com
POP3服务器:pop.ccident.com
SMTP服务器:smtp.ccident.com

etang.com
POP3服务器:pop.etang.com
SMTP服务器:smtp.etang.com

nethao.com
POP3服务器:freemail.nethao.com
SMTP服务器:freemail.nethao.com

soyou.net
POP3服务器:pop.soyou.net
SMTP服务器:smtp.soyou.net

newstar.com.cn
POP3服务器:pop.emai.com.cn
SMTP服务器:smtp.email.com.cn

cityhot.com
POP3服务器:citymail.cityhot.com
SMTP服务器:citymail.cityhot.com

dfworld.net
POP3服务器:mail.dfworld.net
SMTP服务器:mail.dfworld.net

gzboy.com
POP3服务器:www.email.com.cn
SMTP服务器:www.email.com.cn

citiz.net
POP3服务器:pop.citiz.net
SMTP服务器:smtp.citiz.net

100m.hl.cninfo.net
POP3服务器:100m.hl.cninfo.net
SMTP服务器:100m.hl.cninfo.net

dg.163mail.net
POP3服务器:dg.163mail.net
SMTP服务器:dg.163mail.net

bodachina.com
POP3服务器:bodachina.com
SMTP服务器:smtp.bodachina.com

softhome.net
POP3服务器:pop.SoftHome.net
SMTP服务器:smtp.SoftHome.net

yesky.com
POP3服务器:pop.yesky.com
SMTP服务器:smtp.yesky.com

alibaba.com
POP3服务器:pop.alibaba.com
SMTP服务器:smtp.alibaba.com

mweb.com.cn
POP3服务器:pop3.mweb.com.cn
SMTP服务器:smtp.mweb.com.cn

km169.net
POP3服务器:email.km169.net
SMTP服务器:email.km169.net

wocall.com
POP3服务器:wocall.com
SMTP服务器:wocall.com

guohao.com
POP3服务器:guohao.com
SMTP服务器:guohao.com

bjmail.net
POP3服务器:bjmail.net
SMTP服务器:bjmail.net

cnuninet.com
POP3服务器:pop.bj.cnuninet.com
SMTP服务器:smtp.bj.cnuninet.com

cmmail.com
POP3服务器:pop3.cmmail.com
SMTP服务器:smtp.cmmail.com

peoplemail.com.cn
POP3服务器:pop.peoplemail.com.cn
SMTP服务器:smtp.peoplemail.com.cn

21cn.net
POP3服务器:pop.21cn.net
SMTP服务器:smtp.21cn.net

sh163.net
POP3服务器:mail.sh163.net
SMTP服务器:mail.sh163.net

avl.com.cn
POP3服务器:pop.avl.com.cn
SMTP服务器:smtp.avl.com.cn

thmz.com
POP3服务器:pop.thmz.com
SMTP服务器:smtp.thmz.com

vip.km169.net
POP3服务器:vip.km169.net
SMTP服务器:vip.km169.net

yahoo.com
POP3服务器:pop.mail.yahoo.com
SMTP服务器:smtp.mail.yahoo.com

yahoo.com.cn
POP3服务器:pop.mail.yahoo.com.cn
SMTP服务器:smtp.mail.yahoo.com.cn

yahoo.com.tw
POP3服务器:pop.mail.yahoo.com.tw
SMTP服务器:smtp.mail.yahoo.com.tw

yahoo.com.hk
POP3服务器:pop.mail.yahoo.com.hk
SMTP服务器:smtp.mail.yahoo.com.hk

yahoo.com.mx
POP3服务器:pop.mail.yahoo.com.mx
SMTP服务器:smtp.mail.yahoo.com.mx

yahoo.com.br
POP3服务器:pop.mail.yahoo.com.br
SMTP服务器:smtp.mail.yahoo.com.br

yahoo.com.ar
POP3服务器:pop.mail.yahoo.com.ar
SMTP服务器:smtp.mail.yahoo.com.ar

yahoo.com.au
POP3服务器:pop.mail.yahoo.com.au
SMTP服务器:smtp.mail.yahoo.com.au

yahoo.co.kr
POP3服务器:pop.mail.yahoo.co.kr
SMTP服务器:smtp.mail.yahoo.co.kr

yahoo.co.uk
POP3服务器:pop.mail.yahoo.co.uk
SMTP服务器:smtp.mail.yahoo.co.uk

yahoo.co.jp
POP3服务器:pop.mail.yahoo.co.jp
SMTP服务器:smtp.mail.yahoo.co.jp

yahoo.ca
POP3服务器:pop.mail.yahoo.ca
SMTP服务器:smtp.mail.yahoo.ca

yahoo.dk
POP3服务器:pop.mail.yahoo.dk
SMTP服务器:smtp.mail.yahoo.dk

yahoo.de
POP3服务器:pop.mail.yahoo.de
SMTP服务器:smtp.mail.yahoo.de

yahoo.fr
POP3服务器:pop.mail.yahoo.fr
SMTP服务器:smtp.mail.yahoo.fr

yahoo.es
POP3服务器:pop.mail.yahoo.es
SMTP服务器:smtp.mail.yahoo.es

yahoo.it
POP3服务器:pop.mail.yahoo.it
SMTP服务器:smtp.mail.yahoo.it

yahoo.se
POP3服务器:pop.mail.yahoo.se
SMTP服务器:smtp.mail.yahoo.se

yahoo.no
POP3服务器:pop.mail.yahoo.no
SMTP服务器:smtp.mail.yahoo.no

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jbgtwang/archive/2009/06/11/4259787.aspx

转载于:https://www.cnblogs.com/zm2011/archive/2011/04/27/2030999.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javamail 发送邮件 的相关文章

  • 带路径压缩算法的加权 Quick-Union

    有一种 带路径压缩的加权快速联合 算法 代码 public class WeightedQU private int id private int iz public WeightedQU int N id new int N iz new
  • Java Logger 未记录到 Netbeans 中的输出

    我正在 Netbeans 中使用 Maven 启动一个 Java 项目 我编写了一些代码来使用 Logger 类进行日志记录 但是 日志记录似乎不起作用 在程序开始时 我运行 Logger getLogger ProjectMainClas
  • 如何在 JavaFX 中连接可观察列表?

    我所说的串联是指获得一个新列表 该列表侦听所有串联部分的更改 方法的目的是什么FXCollections concat ObservableList
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 什么是抽象类? [复制]

    这个问题在这里已经有答案了 当我了解抽象类时 我说 WT H 问题 创建一个无法实例化的类有什么意义呢 为什么有人想要这样的课程 什么情况下需要抽象类 如果你明白我的意思 最常见的是用作基类或接口 某些语言有单独的interface构建 有
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack

随机推荐

  • 一台云服务器怎么挂多个网站吗,一台云服务器怎么挂多个网站

    一台云服务器怎么挂多个网站 内容精选 换一换 通过华为云备案 需要先购买华为云中国大陆节点服务器 用于网站备案使用 后称为 备案服务器 目前可用于华为云备案的服务器 请参见备案服务器 如果您的华为云帐号A中没有可备案的服务器 华为云帐号B中
  • .npmrc给单独包设置源

    1 package json中的dependencies或者devDependencies模块设置要下载包的版本信息 例如 dependencies antv g 3 4 10 2 在 npmrc中设置对应源 antv g registry
  • 通过css去掉input框默认样式

    input 去除阴影 box shadow none 聚焦input的蓝色边框 outline none textarea 禁止拖拽 resize none 去除边框 border none 常用于IOS下移除原生样式 webkit app
  • Java使用opencv计算两个多边形交并比IOU、重叠面积占比

    opencv引入配置看这里https blog csdn net angelpaiy article details 126870213 需要引入的opencv类 import org opencv core Scalar import o
  • Dart中常用的集合类型List、Set、Map、Queue

    Dart中常用的集合类型 List 列表 有序集合 可以修改数据 Dart中List对应数组 可以通过索引访问元素 Set 集合 无序 不可重复 常用于过滤重复数据 Map 映射 键值对集合 键必须唯一 值可以重复 常用于存储关联数据 Qu
  • 分享5个关于 Vue 的小知识,希望对你有所帮助(五)

    大家好 今天我继续分享5个关于 Vue 的小知识 希望对你有所帮助 往期文章 分享5个关于 Vue 的小知识 希望对你有所帮助 一 分享5个关于 Vue 的小知识 希望对你有所帮助 二 分享5个关于 Vue 的小知识 希望对你有所帮助 三
  • CTRL键不能使用(非硬件问题)

    如果ctrl键不能用了 并且排除是硬件问题 排除方法 电脑有两个CTRL键 可以试试另一个是否可以使用 那么肯定是驱动除了问题 相关链接 根据上面的教程修改之后 我的驱动是无法更新的 我换了一个驱动就能正常使用了 选择驱动程序详细信息 然后
  • ad7606中文资料_16位ADC数据采集模块AD7606(原理图、中文数据手册、例程等)

    AD7606 数据采集模块 16位ADC 8通道同时200KHz频率采集 每秒8 200K样本 SPI接口或8080 16位并口 可自行选择 AD7606 数据采集模块特性 使用AD7606 高精度16位ADC芯片 8路模拟输入 阻抗1M欧
  • ZED安装

    1 下载对应版本的ubantu的sdk 运行 run文件 2 安装过程中可能会存在依赖关系错误的问题 可以解决的方法有二 一 换源 二 网上搜依赖关系的解决方法 3 运行get api py会出现一直downing的情况 解决方法有二 一
  • Linux curl 命令详解

    该命令设计用于在没有用户交互的情况下工作 curl 是一个工具 用于传输来自服务器或者到服务器的数据 向服务器传输数据或者获取来自服务器的数据 可支持的协议有 DICT FILE FTP FTPS GOPHER HTTP HTTPS IMA
  • 区块链的几大模块

    共识的分类 POW POW的一般理解 根据难度做SHA256哈希运算 不停寻找Nonce 特定的HASH 前导0的个数越多 代表难度越大 优点是难于计算 一旦收到网络上的区块 能快速验证 难度算法按高度动态调整 维持出块时间不变 POW规范
  • 06 - string,number

    06 String Number 6 01 Number 关于数字的一些特性 属性与方法 数字 0123456789 var num 10 console log num 特殊数字值 NaN 非数字 数字相关方法 全局方法 number v
  • IntelliJ Idea入门教程:如何新建项目

    下载IntelliJ IDEA 创建项目后 就可以开始添加新项目 创建目录和包 添加新类 导入资源以及通过添加更多模块扩展项目 建立新项目 创建一个新目录 在 项目 工具窗口 Alt 1 中 右键单击要在其中创建新目录的节点 然后选择 Ne
  • [588]Grafana安装及简单使用

    简介 Grafana是一个跨平台的开源的度量分析和可视化工具 可以通过将采集的数据查询然后可视化的展示 并及时通知 它主要有以下六大特点 1 展示方式 快速灵活的客户端图表 面板插件有许多不同方式的可视化指标和日志 官方库中具有丰富的仪表盘
  • python中^是什么意思

    是什么意思 输入为 x 3 x x 2 print x 在python中 符号代表按位翻转 输出为 意思就是 按位异或 可以参考如下示例 In 4 2 2 Out 4 0 In 5 1 3 Out 5 2 In 6 333 333 Out
  • 【IEEE 13 节点分配系统中的THD降低】系统的谐波分析给出了各种总线上电流和电压的谐波频谱和THD(Simulink实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现 1 概述 IEEE 13 节点分配系统中的THD
  • 安装最新版greenplum6.10时报错:依赖检测失败。(详细解决步骤)

    报错原因 最新版本的greenplum6 10一些内部工具对系统环境的依赖有要求 故直接进行rpm包安装时会报依赖缺失 如果在装服务器系统的时候选则的最小化安装 那么必然会报这个错误 greenplum5及以下版本在安装的时候是不会报这个错
  • 第二周作业

    1 运行脚本可以显示出本机的ip地址 bin bash ifconfig eth0 sed n 2p awk print 2 ifconfig eth0 提取网卡eth0的配置信息 使用 传给sed sed n 2p 输出ifconfig
  • 【nodejs进阶之旅(2)】:使用koa2+mysql 实现列表数据分页

    1 展示效果 分页 2 分页主要字段 分页主要字段包括 pageSize 每页条数 pageNum 第几页 startRow 当前开始页编号 endRow 当前结束页编号 total 总数量 主要是根据前端分页的参数 进行处理后 返回前端正
  • javamail 发送邮件

    转自 http blog csdn net jbgtwang archive 2009 06 11 4259787 aspx 今天学习了一下JavaMail javamail发送邮件确实是一个比较麻烦的问题 为了以后使用方便 自己写了段代码