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 ,