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("flyfoxer@21cn.com",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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值