请选择 进入手机版 | 继续访问电脑版
查看: 736|回复: 0

[Java代码] Java发送邮件实例,邮箱要开通SMTP服务

3万

主题

3万

帖子

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
100197
发表于 2016-12-23 09:19:56
摘要: java发送邮件实例,邮箱要开通SMTP服务
实例一
  1. import java.util.Properties;

  2. import javax.mail.Authenticator;
  3. import javax.mail.Message;
  4. import javax.mail.MessagingException;
  5. import javax.mail.PasswordAuthentication;
  6. import javax.mail.Session;
  7. import javax.mail.Transport;
  8. import javax.mail.internet.AddressException;
  9. import javax.mail.internet.InternetAddress;
  10. import javax.mail.internet.MimeMessage;

  11. public class SendmailUtil {
  12.         
  13.         // 设置服务器
  14.         private static String KEY_SMTP = "mail.smtp.host";
  15.         private static String VALUE_SMTP = "smtp.qq.com";
  16.         // 服务器验证
  17.         private static String KEY_PROPS = "mail.smtp.auth";
  18.         private static boolean VALUE_PROPS = true;
  19.         // 发件人用户名、密码
  20.         private String SEND_USER = "2569000943@qq.com";
  21.         private String SEND_UNAME = "2569000943";
  22.         private String SEND_PWD = "********";
  23.         // 建立会话
  24.         private MimeMessage message;
  25.         private Session s;

  26.         /*
  27.          * 初始化方法
  28.          */
  29.         public SendmailUtil() {
  30.                 Properties props = System.getProperties();
  31.                 props.setProperty(KEY_SMTP, VALUE_SMTP);
  32.                 props.put(KEY_PROPS, "true");
  33.                 //props.put("mail.smtp.auth", "true");
  34.                 s =  Session.getDefaultInstance(props, new Authenticator(){
  35.                       protected PasswordAuthentication getPasswordAuthentication() {
  36.                           return new PasswordAuthentication(SEND_UNAME, SEND_PWD);
  37.                       }});
  38.                 s.setDebug(true);
  39.                 message = new MimeMessage(s);
  40.         }

  41.         /**
  42.          * 发送邮件
  43.          *
  44.          * @param headName
  45.          *            邮件头文件名
  46.          * @param sendHtml
  47.          *            邮件内容
  48.          * @param receiveUser
  49.          *            收件人地址
  50.          */
  51.         public void doSendHtmlEmail(String headName, String sendHtml,
  52.                         String receiveUser) {
  53.                 try {
  54.                         // 发件人
  55.                         InternetAddress from = new InternetAddress(SEND_USER);
  56.                         message.setFrom(from);
  57.                         // 收件人
  58.                         InternetAddress to = new InternetAddress(receiveUser);
  59.                         message.setRecipient(Message.RecipientType.TO, to);
  60.                         // 邮件标题
  61.                         message.setSubject(headName);
  62.                         String content = sendHtml.toString();
  63.                         // 邮件内容,也可以使纯文本"text/plain"
  64.                         message.setContent(content, "text/html;charset=GBK");
  65.                         message.saveChanges();
  66.                         Transport transport = s.getTransport("smtp");
  67.                         // smtp验证,就是你用来发邮件的邮箱用户名密码
  68.                         transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
  69.                         // 发送
  70.                         transport.sendMessage(message, message.getAllRecipients());
  71.                         transport.close();
  72.                         System.out.println("send success!");
  73.                 } catch (AddressException e) {
  74.                         // TODO Auto-generated catch block
  75.                         e.printStackTrace();
  76.                 } catch (MessagingException e) {
  77.                         e.printStackTrace();
  78.                 }
  79.         }

  80.         public static void main(String[] args) {
  81.                 SendmailUtil se = new SendmailUtil();
  82.                 se.doSendHtmlEmail("编程学堂", "编程学堂www.bcxue.com", "123456@qq.com");
  83.         }
  84. }
复制代码

实例二:
  1. import java.security.Security;
  2. import java.util.Date;
  3. import java.util.Properties;

  4. import javax.mail.Authenticator;
  5. import javax.mail.Message;
  6. import javax.mail.MessagingException;
  7. import javax.mail.PasswordAuthentication;
  8. import javax.mail.Session;
  9. import javax.mail.Transport;
  10. import javax.mail.internet.AddressException;
  11. import javax.mail.internet.InternetAddress;
  12. import javax.mail.internet.MimeMessage;

  13. public class sendEmail {
  14.         public static void main(String[] args) throws AddressException,
  15.                         MessagingException {
  16.                 String SEND_USER = "2569000943@qq.com";
  17.                 String SEND_UNAME = "2569000943";
  18.                 String SEND_PWD = "********";
  19.                 String VALUE_SMTP = "smtp.qq.com";
  20.                 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  21.                 //final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
  22.                 // Get a Properties object
  23.                 Properties props = System.getProperties();
  24.                 // props.setProperty("mail.smtp.host", "smtp.gmail.com");
  25.                 props.setProperty("mail.smtp.host", "smtp.qq.com");
  26.                 //props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
  27.                 //props.setProperty("mail.smtp.socketFactory.fallback", "false");
  28.                  props.setProperty("mail.smtp.port", "25");
  29.                 //props.setProperty("mail.smtp.port", "587");
  30.                 //props.setProperty("mail.smtp.socketFactory.port", "25");
  31.                 //props.setProperty("mail.smtp.socketFactory.port", "587");
  32.                 props.put("mail.smtp.auth", "true");
  33.                 final String username = "2569000943";
  34.                 final String password = "chHorse123";
  35.                 Session session = Session.getDefaultInstance(props,
  36.                                 new Authenticator() {
  37.                                         protected PasswordAuthentication getPasswordAuthentication() {
  38.                                                 return new PasswordAuthentication(username, password);
  39.                                         }
  40.                                 });

  41.                 // -- Create a new message --
  42.                 session.setDebug(true);
  43.                 Message msg = new MimeMessage(session);

  44.                 // -- Set the FROM and TO fields --
  45.                 msg.setFrom(new InternetAddress(username + "@qq.com"));
  46.                 msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
  47.                                 "798210413@qq.com", false));
  48.                 msg.setSubject("Hello---");
  49.                 msg.setText("How are you");
  50.                 msg.setSentDate(new Date());
  51.                 Transport transport = session.getTransport("smtp");
  52.                 // smtp验证,就是你用来发邮件的邮箱用户名密码
  53.                 transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);
  54.                 // 发送
  55.                 transport.sendMessage(msg, msg.getAllRecipients());
  56.                 Transport.send(msg);
  57.                 transport.close();

  58.                 System.out.println("Message sent.");
  59.         }

  60. }

复制代码







回复

使用道具 举报