`
谷超
  • 浏览: 166318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaMail使用

    博客分类:
  • Java
阅读更多

步骤:
1.发送邮件类

package test.mail;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
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;

import sun.misc.BASE64Encoder;

public class MailSender{
    public void sendMail() throws Exception{
        Properties props = new Properties();
        props.put("mail.smtp.host", getHost());
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(getFromAddr()));
        message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
        message.setSubject(getTitle());
        
        Multipart multipart = new MimeMultipart();
        BodyPart contentPart = new MimeBodyPart();
        contentPart.setText(text);//这里就是要发出去的邮件内容啦!
        multipart. addBodyPart(contentPart);
        
        if(getAttachPath() != null && getAttachName() != null){//发送附件
            BodyPart attachmentPart= new MimeBodyPart();
            DataSource source = new FileDataSource(attachPath);
            attachmentPart.setDataHandler(new DataHandler(source));
            BASE64Encoder enc = new BASE64Encoder();
            attachmentPart.setFileName("=?GBK?B?"+enc.encode(attachName.getBytes())+"?=");
            multipart.addBodyPart(attachmentPart);
        }
        message.setContent(multipart);
        message.saveChanges();
        Transport transport = session.getTransport("smtp");
        transport.connect(host,getUsername(),getPassword());
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
    
   

    private String host = null;
    private String fromAddr = null;
    private String toAddr = null;
    private String username = null;
    private String password = null;
    private String title = null;
    private String attachPath = null;//附件路径
    private String attachName = null;//附件名
    private String text = null;
    
    public String getHost(){
        return host;
    }


	public String getText() {
		return text;
	}


	public void setText(String text) {
		this.text = text;
	}


	public void setHost(String host){
        this.host = host;
    }

    public String getFromAddr(){
        return fromAddr;
    }

    public void setFromAddr(String fromAddr){
        this.fromAddr = fromAddr;
    }

    public String getToAddr(){
        return toAddr;
    }

    public void setToAddr(String toAddr){
        this.toAddr = toAddr;
    }

    public String getUsername(){
        return username;
    }

    public void setUsername(String username){
        this.username = username;
    }

    public String getPassword(){
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTitle(){
        return title;
    }

    public void setTitle(String title){
        this.title = title;
    }

    public String getAttachPath(){
        return attachPath;
    }

    public void setAttachPath(String attachPath){
        this.attachPath = attachPath;
    }

    public String getAttachName(){
        return attachName;
    }

    public void setAttachName(String attachName){
        this.attachName = attachName;
    }
}

 2.测试类

package test.mail;

public class MailTest {
	public static void main(String[] args){
	        MailSender sender = new MailSender();
	        sender.setHost("smtp.qq.com");
	        sender.setFromAddr("aaa@qq.com");//发件人的邮箱地址
	        sender.setToAddr("bbb@sina.com");//收件人的邮箱地址
	        sender.setUsername("aaa");//邮箱用户名
	        sender.setPassword("cccc");//邮箱密码
	        sender.setTitle("The first mail");//邮件的标题
	        sender.setText("这是我用Java程序发送的第1封邮件!呵呵!!!");//邮件正文
	        sender.setAttachName("附件");//附件名称
	        sender.setAttachPath("D:/exp.log");//附件路径
	        try {
		        sender.sendMail();
		        System.out.println("success");
	        } catch (Exception e){
	            e.printStackTrace();
	        }
	    }

	}

 3.jar包支持

需要mail.jar和activation.jar,需要注意的是邮箱服务器地址smtp.qq.com,不同的发件人邮箱地址会不同!

 

分享到:
评论

相关推荐

    javamail使用demo示例

    这个"javamail使用demo示例"是JavaMail官方提供的一个实例集合,旨在帮助开发者更好地理解和应用JavaMail库。下面我们将深入探讨JavaMail的核心概念、主要功能以及如何使用这些示例代码。 一、JavaMail核心概念 1....

    javamail使用的jar包

    JavaMail 的使用通常需要依赖一组特定的 JAR 包,这些包包含了实现 SMTP、POP3、IMAP 等邮件协议的类和方法。 在描述中提到的 "javamail-1.4.4" 可能是指 JavaMail API 的一个版本号,这通常是一个包含所有必要组件...

    JavaMail使用实例及所需jar包

    总的来说,这个JavaMail使用实例及所需jar包的教程是学习Java邮件编程的宝贵资源。通过实践这些例子,初学者能够快速掌握JavaMail API的基本用法,为进一步的电子邮件开发打下坚实基础。同时,对于那些已经在项目中...

    JavaEE5学习笔记04-JavaMail使用总结

    ### JavaEE5学习笔记04-JavaMail使用总结 在JavaEE5的学习过程中,JavaMail是一个非常重要的组件,它提供了发送、接收电子邮件的功能,并且能够与各种不同的邮件服务器进行交互。下面将根据提供的内容,详细解析...

    JavaEE5学习笔记04-JavaMail使用总结---3

    对于本文提到的“JavaMail使用总结---3”,可能涵盖了更高级或特定的JavaMail用法,例如使用SSL/TLS加密通信、处理邮件附件、读取邮件、解析邮件头等。由于没有具体的博客内容,这部分无法提供详细讲解,但这些都是...

    javamail(带界面的javamail)

    对于邮件接收,JavaMail 使用 Store 和 Folder 类来连接邮件服务器并获取邮件。你可以选择 POP3 或 IMAP 协议,根据用户的需求,可以设置为只读或读写模式。Folder 对象代表邮件文件夹,如“收件箱”、“已发送”等...

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

    使用Apache Commons Email,你可以避免直接与JavaMail API交互时的复杂性,而是通过简单的API调用来实现邮件发送。 要使用这两个jar包进行邮件发送,首先需要将它们添加到项目的类路径中。在传统的Java项目中,这...

    javamail使用的两个jar包

    在JavaMail的使用过程中,通常需要导入两个重要的JAR文件: 1. `mail.jar`: 这是JavaMail的核心库,包含了`javax.mail`和`javax.mail.internet`包,提供了所有与邮件交互的类和接口。例如,`Session`类用于配置邮件...

    JavaMail 使用163发邮件

    在提供的压缩包文件"Spring08JavaMail"中,可能包含了使用Spring集成JavaMail的示例代码,你可以参考学习如何在Spring应用中配置和使用JavaMailSender。 总结起来,JavaMail是一个功能丰富的库,用于在Java应用程序...

    javamail的jar包:javamail-1.6

    使用`javamail-1.6`时,开发者需要将其添加到项目依赖中,然后通过创建邮件会话,构建邮件消息对象,设置发件人、收件人、主题和正文,最后通过Transport类发送邮件。对于接收邮件,可以通过Folder和Message对象进行...

    JavaMail 1.6.0 的官方例子

    2. **SMTP 协议**:JavaMail 使用 Simple Mail Transfer Protocol (SMTP) 发送邮件。通过 SMTPServer 示例,我们可以了解到如何配置 SMTP 服务器参数,如主机名、端口、用户名和密码。 3. **POP3 和 IMAP 协议**:...

    JavaMail使用实例

    这个实例包含了使用JavaMail进行邮件操作所需的全部资源,包括配置和服务的设置,以及具体的代码示例。 首先,JavaMail的核心库是`javax.mail`和`com.sun.mail`,它们提供了邮件协议(如SMTP、POP3、IMAP)的实现。...

    JavaMail完整JAR包

    - JavaMail 使用SMTP(Simple Mail Transfer Protocol)协议发送邮件。SMTP服务器通常是邮件系统的出站服务器,负责将邮件传递到目的地。 4. **POP3/IMAP协议**: - 对于接收邮件,JavaMail支持POP3(Post Office...

    JavaMail 1.5.2

    3. **MIME (Multipurpose Internet Mail Extensions)**:JavaMail 使用 MIME 标准来处理邮件中的多种类型的数据,如文本、图像、附件等。MIME 支持创建复杂的多部分消息,包括嵌入的图片和其他资源。 4. **Session ...

    javamail使用servlet开发很简单的几行代码一看就懂

    在Servlet环境下使用 JavaMail,可以构建基于Web的邮件服务,例如用户通过网页发送邮件。下面我们将深入探讨如何使用JavaMail与Servlet来实现这一功能。 首先,你需要在项目中添加JavaMail的相关依赖。如果你使用的...

    javamail依赖的包.

    5. **provider.properties**:这是一个配置文件,列出了JavaMail使用的服务提供者。你可以在这里指定邮件服务器的参数,如主机名、端口、用户名和密码。 为了使用JavaMail,你需要将这些依赖添加到你的项目构建路径...

    javaMail的使用

    在提供的压缩包文件中,可能包含了一个简单的JavaMail使用示例。通过分析和学习这个例子,你可以更好地理解如何在实际项目中集成和使用JavaMail发送邮件。记得检查代码中的异常处理和错误日志,这对于调试和解决问题...

    javamail 1.4.3 mail.jar 1.4.3 jar 包+源代码下载 天涯浪子

    5. **事件驱动模型**:JavaMail 使用JavaBeans Activation Framework (JAF) 实现事件驱动模型,可以监听邮件状态的变化,例如新邮件到达、邮件已读等。 6. **国际化**:JavaMail 支持多种语言,便于创建多语言的...

Global site tag (gtag.js) - Google Analytics