JavaMail入门教程第二:发送简单邮件

使用JavaMail API发送电子邮件是一件非常简单的事情。

我们认为先看代码看演示是学习程序的一个好方法,所以我们根据代码来说明一下发送简单邮件的流程.

使用前准备:获得JavaMail的Jar包,可以直接到Oracle公司官网下载(sun已经被Oracle并购)。直接在本站首页搜索 JavaMail 就可以直接连接的Oracle对应的网站,现在地址为:http://www.oracle.com/technetwork/java/index-138643.html。解压后,将mail.jar放到你的程序能访问到的地方:在classpath里设置或者导入到你的项目中,如果不会请看稍后发布视频演示。

在你的main方法或者相应的方法里将下面代码粘贴过去,将相关的类自动导入一下就可以运行了.

//代码开始

//1. 使用Session建立会话
String stmphost = "127.0.0.1";
Properties props = new Properties();
props.put("mail.smtp.host", stmphost);
props.put("mail.smtp.auth","true");
Session sendmailsession;
sendmailsession = Session.getDefaultInstance(props, null);

try {

//2. 使用Message封装邮件信息,包括发送者,接收者,主题,内容,发送日期
Message msg = new MimeMessage(sendmailsession);
msg.setFrom(new InternetAddress("zhangsan@historycreator.com"));
msg.setRecipient(RecipientType.TO, new InternetAddress("lisi@historycreator.com"));
msg.setSubject("java_mail");
msg.setText("welcome to javamail world!");
msg.setSentDate(new Date());

//3. 使用Transport获得通信对象
Transport transport = sendmailsession.getTransport("smtp");

//4. 根据账户和密码,建立与邮件服务器的连接
transport.connect(stmphost, "zhangsan", "ade");

//5. 发送邮件给所有接收者
transport.sendMessage(msg, msg.getAllRecipients());

//6. 最后别忘了关闭通信连接,这是绅士的表现,呵呵。
transport.close();
}
catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}

 //代码结束

上面的代码可以使用在web应用中,也可以在Java Se应用程序中使用。运行完毕后,可以使用Outlook等工具登陆lisi的邮箱,接收一下。

注1:稍微修改一下,就可以借用诸如qq,gmail,126等邮箱向朋友的邮箱发送邮件了。操作方法是:保证你所使用的邮箱的提供了smtp服务,一般smtp服务器地址就是smtp.您的邮件的主域名,如qq的smtp服务器就是smtp.qq.com,使用qq发送前,需要自己手动打开smtp服务器。其他邮箱要确认是否支持smtp服务。

注2:使用邮件提供商如126等,发送邮件的话,用户名可以直接是邮件地址,如zhangsan@qq.com,那么对应的代码修改为:transport.connect(stmphost, "zhangsan@qq.com", "ade");

注3: 上面代码中把发件人,接收人都写在了代码里,不能灵活变通,你在做新的系统的时候可不能这么做,至少应该让用户自己填写表单,然后将这些参数接收过来.

注4: 程序中,邮件的发送日期是取的当前时间,有同学会把发送日期自己调到未来某个时间,这样发出的邮件就会排到对方收件箱比较靠前的位置,但是有一个弊病,至少用OutLook这样的工具的时候,会根据你的发送时间跟自己的系统时间比较,如果差太多,会认为是垃圾邮件,直接打入垃圾箱或者拒收,其他的邮箱没有试验过,大家要用请实验好了再发送:)


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: JavaMail
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.