`
2277259257
  • 浏览: 515286 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

电子邮件系统 4----JavaMail SMTP服务器发送邮件程序示例 .

 
阅读更多
  1. /** 
  2.  * JavaMail SMTP服务器发送邮件程序示例 
  3.  * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: 
  4.  * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 
  5.  * ,同时不需要验证 
  6.  * 注意:由于条件的限制,此程序是运行不成功的,原因见下面的注释说明 
  7.  */  
  8. package com.labci.javamail.test;  
  9. import java.util.Date;  
  10. import java.util.Properties;  
  11. import javax.mail.Message.RecipientType;  
  12. import javax.mail.Message;  
  13. import javax.mail.MessagingException;  
  14. import javax.mail.Session;  
  15. import javax.mail.Transport;  
  16. import javax.mail.internet.AddressException;  
  17. import javax.mail.internet.InternetAddress;  
  18. import javax.mail.internet.MimeMessage;  
  19. import javax.naming.NamingException;  
  20. import javax.naming.directory.Attributes;  
  21. import javax.naming.directory.DirContext;  
  22. import javax.naming.directory.InitialDirContext;  
  23. /** 
  24.  * @author Bill Tu 
  25.  * @since May 27, 2011(12:21:41 PM) 
  26.  * 
  27.  */  
  28. public class SMTPSenderTest {  
  29.      public static String  getSMTPHost(String domain,String dnsServer) throws NamingException{  
  30.           DirContext ctx=new InitialDirContext();  
  31.           Attributes mxAttrs=null;  
  32.           if(null != dnsServer){  
  33.               mxAttrs=ctx.getAttributes("dns://"+dnsServer+"/"+domain,new String[]{"MX"});  
  34.           }else{  
  35.               mxAttrs=ctx.getAttributes("dns:/"+domain,new String[]{"MX"});  
  36.           }  
  37.             
  38.           String mx=(String) mxAttrs.get("MX").get();  
  39.           String smtpServerName=mx.substring(mx.indexOf(" ")+1);  
  40.           return smtpServerName;  
  41.      }  
  42.        
  43.      private static Message getMessage(Session session) throws AddressException, MessagingException{  
  44.           String from="iwtxokhtd@163.com";  
  45.           String subject="hello";  
  46.           String content="this is content";  
  47.             
  48.           MimeMessage msg=new MimeMessage(session);  
  49.           msg.setFrom(new InternetAddress(from));  
  50.           msg.setSubject(subject);  
  51.           msg.setText(content);  
  52.           msg.setSentDate(new Date());  
  53.             
  54.           return msg;  
  55.         
  56.      }  
  57.        
  58.      private static Session getSession(){  
  59.           Properties props=new Properties();  
  60.           //设置ehlo命令中的主机名,若检测到主机名与其IP地址一致,则认为这时的发送方是SMTP服务器,就不需要验证;否则就是邮件客户端软件,则需要验证。   
  61.           props.put("mail.smtp.localhost""mail.digu.com");  
  62.           props.put("mail.smtp.auth""false");   
  63.           props.put("mail.smtp.port""25");   
  64.           Session session=Session.getDefaultInstance(props);  
  65.           session.setDebug(true);  
  66.           return session;  
  67.      }  
  68.        
  69.      @SuppressWarnings("static-access")  
  70.      private static void sendEmail(Message message,Session session,String to)   
  71.        throws AddressException, MessagingException, NamingException{  
  72.           message.setRecipients(RecipientType.TO, InternetAddress.parse(to));  
  73.           message.saveChanges();  
  74.             
  75.           Transport transport=session.getTransport("smtp");  
  76.             
  77.           String domain=to.substring(to.indexOf("@")+1);  
  78.           String host=getSMTPHost(domain,null);  
  79.             
  80.           transport.connect(host, nullnull);  
  81.           transport.send(message, message.getRecipients(Message.RecipientType.TO));  
  82.             
  83.           transport.close();  
  84.      }  
  85.       
  86.      public static void main(String []args)   
  87.       throws AddressException, MessagingException, NamingException{  
  88.           String []to=new String[]{"277515444@qq.com","277515445@qq.com"};  
  89.           Session session=getSession();  
  90.           Message msg=getMessage(session);  
  91.           for(String email:to){  
  92.               sendEmail(msg,session,email);  
  93.           }  
  94.      }  
  95. }  
分享到:
评论

相关推荐

    commons-email-1.1-bin和javamail-1.4.2.zip

    Apache Commons Email和JavaMail是两个广泛使用的Java库,专门用于处理电子邮件的发送。这两个库分别体现在"commons-email-1.1-bin"和"javamail-1.4.2.zip"这两个压缩包文件中。 Apache Commons Email是Apache ...

    ant发邮件所需的jar(activation.jar+javax.mail.jar+mail.jar+commons-email-1.2.jar)

    4. **commons-email-1.2.jar**:这是Apache Commons Email库,提供了一组高级API,简化了使用JavaMail发送电子邮件的过程。这个库包含了丰富的功能,如添加附件、设置HTML内容、发送多部分邮件等,使邮件发送更加...

    javamail收发邮件加密和不加密

    JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。它支持多种协议,包括POP3、IMAP和SMTP,这些协议分别用于接收、检索和发送邮件。在使用JavaMail时,了解如何进行加密和非加密通信对于确保数据...

    邮件发送系统主体源程序.rar_javamail_邮件系统 linux

    在“javamail发送程序”中,核心概念包括Session、Message、Transport等。Session是JavaMail的全局配置对象,包含了连接邮件服务器所需的参数,如SMTP服务器地址、端口、用户名和密码。Message则代表一封电子邮件,...

    JavaMail发送邮件(文本、html、附件)

    JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、...

    javamail相关JAR包

    JavaMail是Java编程环境中用于处理电子邮件的一套API,它提供了丰富的功能,允许开发者发送、接收和操作邮件。在JavaMail的实现中,通常会用到三个关键的JAR包:`activation-1.1.jar`、`javax.mail-api-1.5.6.jar`和...

    基于SMTP协议的邮件发送系统

    基于SMTP的邮件发送系统允许用户通过编程方式发送电子邮件,而无需手动操作。在这个系统中,Java Servlet作为客户端,通过SMTP协议与邮件服务器进行交互,实现邮件的自动化发送。 1. SMTP协议基础: SMTP是一个...

    javamail实现邮箱与邮箱发送邮件

    JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。它提供了丰富的API,使得开发者可以轻松地实现发送、接收和处理电子邮件的功能。本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送...

    java发送邮件示例---可直接使用运行

    首先,`java发送邮件示例`涉及到的主要技术是JavaMail API,这是一个开源的Java库,用于处理电子邮件。它允许开发者通过SMTP(简单邮件传输协议)或其他邮件传输协议发送邮件,同时也能处理接收邮件。JavaMail API...

    JavaMail javamail java电子邮件客户端

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中实现电子邮件的发送和接收。它提供了对各种邮件协议的支持,如 Simple Mail Transfer Protocol (SMTP)、Post Office Protocol (POP3) 和 Internet Message ...

    javamail发送邮件.zip

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这...

    javamail使用的2个jar包(activation.jar+commons-email-1.1.jar)

    JavaMail 是一个强大的开源库,用于在Java应用程序中实现电子邮件的发送和接收。它提供了标准的API,使得开发者能够方便地处理SMTP、POP3、IMAP等邮件协议。在这个场景中,我们关注的是两个关键的JavaMail依赖jar包...

    Java电子邮件-javamail.rar

    Java电子邮件-javamail是一个关于使用Java编程语言发送和接收电子邮件的示例代码集合。JavaMail API是Java平台上的标准库,它允许开发者通过SMTP、POP3或IMAP协议处理邮件服务。在这个压缩包中,可能包含了实现这些...

    javaMail实现发送邮件的demo

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要...

    javamail入门1--发送简单的文本邮件

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个入门教程将带你了解如何使用 JavaMail 来发送简单的文本邮件。在开始之前,你需要确保已经添加了 JavaMail 相关的库,这里...

    smtp邮件发送程序

    SMTP(Simple Mail Transfer Protocol)邮件发送程序是一种基于TCP/IP协议的网络通信协议,主要用于在互联网上发送电子邮件。这个资源可能是为了帮助用户理解SMTP的工作原理,以及如何通过编程实现邮件发送功能。...

    基于SMTP的JAVA邮件发送程序!

    SMTP(Simple Mail Transfer Protocol)是互联网上用于发送电子邮件的标准协议,而Java则提供了一套强大的API,名为JavaMail,用于实现SMTP邮件发送功能。在这个基于SMTP的JAVA邮件发送程序中,我们将探讨如何利用...

    Java调用SMTP命令发邮件,实现抄送,附件--无需邮件搭建邮件服务器直接发送

    SMTP是互联网上用于发送电子邮件的标准协议。JavaMail API通过与SMTP服务器交互,实现了邮件的发送。在使用SMTP发送邮件时,我们需要配置SMTP服务器的地址、端口、用户名和密码。例如,对于Gmail,SMTP服务器地址...

    邮件发送--commons-email-1.4.jar

    在Java编程环境中,发送电子邮件是一项常见的任务,而`commons-email-1.4.jar`是Apache Commons Email库的一个版本,这个库专门设计用于简化Java中的邮件发送。Apache Commons Email是Apache软件基金会开发的一个...

    smtp.rar_java smtp_smtp_smtp协议_邮件的发送

    SMTP(Simple Mail Transfer Protocol)是互联网上用于发送电子邮件的标准协议,它定义了邮件服务器之间交换邮件的格式和过程。在Java编程中,我们通常使用JavaMail API来实现SMTP协议,以便于发送邮件。 首先,...

Global site tag (gtag.js) - Google Analytics