当前位置:编程学习 > JAVA >>

java发送电子邮件

首先需要依赖两个jar包

mail.jar   下载地址:/2012/0514/20120514021619541.rar

activation.jar 下载地址:/2012/0514/20120514021758706.rar

然后导入工程中:

代码如下:

[java]
/**
 * Email.java
 * 版权所有(C) 2012 
 * 创建:cuiran 2012-05-11 12:52:41
 */ 
package com.wpn.email.test; 
import java.util.Properties; 
import javax.activation.DataHandler; 
import javax.activation.FileDataSource; 
import javax.mail.*; 
import javax.mail.internet.*; 
/**
 * 本程序用java来实现Email的发送,所用到的协议为:SMTP,端口号为25;<br>
 * 方法:用Socket进行实现,打开客户端的Socket,并连接上服务器:<br>
 * 如:Socket sockClient = new Socket("smtp.qq.com",23);<br>
 * 这表示发件方连接的是QQ邮箱的服务器,端口号为23
 * @author cuiran
 * @version 1.0.0
 */ 
public class Email 

    /**
     * 整个MIME邮件对象
     */ 
    private MimeMessage mimeMsg; 
    /**
     * 专门用来发送邮件的Session会话
     */ 
    private Session     session; 
    /**
     * 封装邮件发送时的一些配置信息的一个属性对象
     */ 
    private Properties  props; 
    /**
     * 发件人的用户名
     */ 
    private String      username; 
    /**
     * 发件人的密码
     */ 
    private String      password; 
    /**
     * 用来实现附件添加的组件
     */ 
    private Multipart   mp; 
    /**
     * 发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化""
     * 
     * @param smtp
     *            SMTP服务器的地址,比如要用QQ邮箱,哪么应为:"smtp.qq.com",163为:"smtp.163.com"
     */ 
    public Email(String smtp) 
    { 
        username = ""; 
        password = ""; 
        // 设置邮件服务器 
        setSmtpHost(smtp); 
        // 创建邮件 
        createMimeMessage(); 
    } 
    /**
     * 设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。
     * 它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机);
     * 
     * @param hostName
     */ 
    public void setSmtpHost(String hostName) 
    { 
        System.out.println("设置系统属性:mail.smtp.host = " + hostName); 
        if (props == null) 
            props = System.getProperties(); 
        props.put("mail.smtp.host", hostName); 
    } 
    /**
     * (这个Session类代表JavaMail 中的一个邮件session. 每一个基于
     * JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中,
     * Session对象需要知道用来处理邮件的SMTP 服务器。
     */ 
    public boolean createMimeMessage() 
    { 
        try 
        { 
            System.out.println("准备获取邮件会话对象!"); 
            // 用props对象来创建并初始化session对象 
            session = Session.getDefaultInstance(props, null); 
        } 
        catch (Exception e) 
        { 
            System.err.println("获取邮件会话对象时发生错误!" + e); 
            return false; 
        } 
        System.out.println("准备创建MIME邮件对象!"); 
        try 
        { 
            // 用session对象来创建并初始化邮件对象 
            mimeMsg = new MimeMessage(session); 
            // 生成附件组件的实例 
            mp = new MimeMultipart(); 
        } 
        catch (Exception e) 
        { 
            System.err.println("创建MIME邮件对象失败!" + e); 
            return false; 
        } 
        return true; 
    } 
    /**
     * 设置SMTP的身份认证
     */ 
    public void setNeedAuth(boolean need) 
    { 
        System.out.println("设置smtp身份认证:mail.smtp.auth = " + need); 
        if (props == null) 
        { 
            props = System.getProperties(); 
        } 
        if (need) 
            props.put("mail.smtp.auth", "true"); 
        else 
            props.put("mail.smtp.auth", "false")

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,