`

JavaMail入门-简单邮件例子

    博客分类:
  • Java
阅读更多

 这是一个发送邮件的简单例子,可以上传附件

 

 SimpleMail类:

package com.zsy.sun;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Part;
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;
import javax.mail.internet.MimeUtility;


/**
 * 通过JavaMail发送一封简单的邮件,以及增加附件连接
 * @author zsy
 * @date 2015年1月19日 下午3:41:48
 */

public class SimpleMail {
	//主机
    private String host = "";
    private String user = "";
    private String password = "";
    private static Properties props = new Properties();
    public String attachmentPath = "C:/Users/Administrator/Desktop/活动1.png";
    
    public static void main(String[] args) {
        SimpleMail sm = new SimpleMail();
        sm.setHost("smtp.163.com"); // 指定要使用的邮件服务器
        sm.setAccount("xxxxx@163.com", "**********"); // 指定帐号和密码
        sm.send("xxxxx@163.com", "xxxxx@qq.com", "标题", "HelloWold!");
    }
    
    
    public void setHost(String host) {
        this.host = host;
    }
    
    
    public void setAccount(String user, String password) {
        this.user = user;
        this.password = password;
    }
    
    /**
     * 
     * @param from		发件人地址
     * @param to		收件人地址
     * @param subject	邮件主题
     * @param content	邮件内容
     */
    public void send(String from, String to, String subject, String content) {
        props.put("mail.smtp.host", "smtp.163.com");
        props.put("mail.smtp.auth", true);
        try {
        	//提供配置以及初始化JavaMail,不与邮件服务器交互
        	Session mailSession = Session.getDefaultInstance(props);
        	
        	//创建需要传递的消息
            Message message = new MimeMessage(mailSession);
            message.setFrom(new InternetAddress(from)); // 发件人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 收件人
            message.setSubject(subject); // 邮件主题
            //message.setText(content);  邮件内容
            
            /* 
             * 附件上传 
             */  
            MimeBodyPart mbp1 = new MimeBodyPart();  
            FileDataSource fds2 = new FileDataSource(attachmentPath);  
            DataHandler dh2 = new DataHandler(fds2);  
            mbp1.setDataHandler(dh2);  
            mbp1.setFileName(MimeUtility.encodeText(fds2.getName()));  
            
            MimeBodyPart mbp2 = new MimeBodyPart();
            mbp2.setContent(content.toString(), "text/html;charset=gb2312");
            
            //增加邮件内容
            Multipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1); 
            mp.addBodyPart(mbp2);
            message.setContent(mp);  
            
            message.saveChanges();
            /*
             * Session根据协议类型(stmp、pop3等)和邮件操作方式(传输和存储)这两个信息就可以定位到一个实例类上。
             * 比如,指定stmp协议和transport类型后,
             * Session就会使用com.sun.mail.smtp.SMTPTransport实现类创建一个Transport实例,
             * 而指定pop3协议和store类型时,则会使用com.sun.mail.pop3.POP3Store实例类创建一个Store实例。
             */
            
            Transport transport = mailSession.getTransport("smtp");
            transport.connect(host, user, password);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        } catch(Exception e) {
            System.out.println(e);
        }
    }
    
    /*private static Properties createProperties(){
    	
    	InputStream is = null;
    	try {
			is = SimpleMail.class.getResourceAsStream("/com/zsy/config/mail.properties");
			props.load(is);
			is.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return props;
    }*/
    
}

 

更详细的参数以及相关内容,请参考【zapldy】大大的文章,JavaMail发送和接收邮件:http://blog.csdn.net/zapldy/article/details/3971579

分享到:
评论

相关推荐

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

    这个入门教程将带你了解如何使用 JavaMail 来发送简单的文本邮件。在开始之前,你需要确保已经添加了 JavaMail 相关的库,这里提到的 "lib" 文件可能包含了这些必要的 JAR 包。 首先,你需要引入 JavaMail 的核心库...

    Java发邮件例子Java Mail示例程序

    本教程将向你展示如何利用JavaMail API实现简单的邮件发送功能,非常适合初学者入门。 首先,我们需要引入JavaMail的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...

    javamail发送邮件实例(导入MyEclipse即可运行)

    初学javamail的时候,弄了好久都没成功的例子,现在成功了和大家分享下,希望对刚入门的朋友有所帮助。本例是用qq邮箱运行的,所以发送端的邮箱smtp服务必须开启,接受端无需任何设置!导入成功后,直接运行...

    javaMailDemo

    这个“javaMailDemo”项目是一个适合初学者入门的示例,它演示了如何使用 JavaMail API 实现基本的邮件功能。在这个简单的示例中,你将学习到如何配置 JavaMail 的环境,创建邮件消息,以及如何通过 SMTP(简单邮件...

    java 网络编程 代码集合

    07-RMI-HelloWorld则是一个简单的RMI入门示例,帮助初学者理解RMI的工作原理。 3. **SMTP(Simple Mail Transfer Protocol)**:12-SMTP-Example是使用JavaMail API发送邮件的示例。SMTP协议定义了电子邮件的传输...

    javaee6 sun公司官方培训书(含例子)

    8. **JavaMail**和**JMS**:JavaEE6提供了JavaMail API来处理电子邮件,以及Java Message Service(JMS)API用于消息队列通信,这两者都是企业级应用中常见的通信机制。 9. **WebSocket**:虽然JavaEE6本身不包含...

    java mail demo

    这个"java mail demo"是一个入门级别的程序示例,旨在帮助初学者了解如何使用Java Mail API来实现邮件功能。在这个例子中,我们使用的是QQ邮箱,并且需要预先在QQ邮箱的设置中开启POP3服务。 POP3(Post Office ...

    十天学会JAVA,JSP学习系列教程

    第六天,教程讲解了JavaMail API的使用,演示了如何通过servlet发送电子邮件,这对于构建交互式Web应用非常实用。 第七、八、九天的学习内容没有给出具体的文件名,但可以推测可能涉及了更高级的JAVA和JSP主题,如...

    java javaee api 中文版 帮助文档

    JavaEE(Java企业版)API则扩展了JavaSE,增加了对企业级应用的支持,如数据库连接(JDBC)、持久化(JPA)、Web服务(JAX-WS、JAX-RS)、会话管理(Servlet、JSP)和邮件服务(JavaMail)。例如,`javax.servlet`包...

    开源框架 Spring Gossip

    <br>AOP 入门 AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。 从代理机制初探 AOP 动态代理 <br>AOP 观念与...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

Global site tag (gtag.js) - Google Analytics