SMTP客户端

标题:SMTP客户端
作者:kagula
日期:2008-01-04

目的:
通过这里的代码,在你的应用程序中,可以通过SMTP服务器发送电子邮件,无需任何修改
适应任何环境。

依赖项:
[1]mail.jar
正文:
[1]源码段
/**
* 发送电子邮件
* 参数
* smtp.host smtp服务器名称
* smtp.user 登录smtp,用户名
* smtp.pwd 登录smtp,密码
* smtp.from 发送电子邮件地址
* smtp.to 接收电子邮件地址 (必填项)
* smtp.subject 主题 (必填项)
* smtp.content 内容 (必填项)
*
* 缺少必填项,程序将直接返回。
*
* @param map
* @throws Exception
*/
public static synchronized void sendMail(Map map) throws Exception
{
/**
* 如果形参map没有提供,以下入口参数,则设置缺省值
* smtp.host smtp服务器名称
* smtp.user smtp登录用户名
* smtp.pwd smtp登录密码
* smtp.from 发送电子邮件地址
*/

if(map.get("smtp.host")==null||map.get("smtp.host").toString().length()<1)
{
map.put("smtp.host","缺省主机名");
}
if(map.get("smtp.user")==null||map.get("smtp.user").toString().length()<1)
{
map.put("smtp.user", "缺省SMTP服务器帐号");
}
if(map.get("smtp.pwd")==null||map.get("smtp.pwd").toString().length()<1)
{
map.put("smtp.pwd", "SMTP帐号密码");
}
if(map.get("smtp.from")==null||map.get("smtp.from").toString().length()<1)
{
map.put("smtp.from", "发送电子信息");
}

/**
* 如果缺少 必填项 程序 直接返回
*/
if(map.get("smtp.to")==null||map.get("smtp.subject")==null||map.get("smtp.content")==null)
{
return;
}

if(map.get("smtp.to").toString().length()<1||map.get("smtp.subject").toString().length()<1||map.get("smtp.content").toString().length()<1)
{
return;
}

/**
* 源码 正文
*/
Properties props = new Properties();

props.put("mail.smtp.host",(String)map.get("smtp.host"));
props.put("mail.smtp.user", (String)map.get("smtp.user"));
props.put("mail.smtp.auth", "true"); //SMTP服务器用户验证

Authenticator auth = new SMTPAuthenticator((String)map.get("smtp.user"),
(String)map.get("smtp.pwd"));

Session session = Session.getDefaultInstance(props, auth);

MimeMessage msg = new MimeMessage(session);

//setFrom(new InternetAddress("[email protected]",from));
msg.setFrom(new InternetAddress((String)map.get("smtp.from"))); //设置发送人邮件

// Set the to address
msg.addRecipient(Message.RecipientType.TO,new InternetAddress((String)map.get("smtp.to")));

msg.setSubject((String)map.get("smtp.subject"), "gbk");

msg.setSentDate(new Date());

msg.setText((String)map.get("smtp.content")); //邮件附件

msg.saveChanges();

Transport.send(msg);
}

你可能感兴趣的:(smtp)