传智播客——Javamail

在开始Javamail开发之前,需要对邮件服务器和邮件传输协议有所了解。邮件服务器按功能可以分为SMTP服务器和POP3服务器。SMTP服务器用于向用户提供邮件发送功能,POP3服务器用于向用户提供邮件接收功能。搭建一台互联网邮件服务器,需要在DNS服务器上进行正向的A记录解析和反向的MX记录解析。

SMTP协议定义了邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器之间的通讯规则。使用SMTP协议发送邮件需要6条命令:ehlo domain --打招呼;auth para   --认证;mail from:reverse_path --发件人地址;rcpt to:forward_path --收件人地址;Data回车后输入邮件内容 .号代表邮件内容的结束;quit –退出.

下面来讲讲MIME协议:MIME协议是RFC822文档的升级和补充,MIME协议对不同数据进行分隔,并使用Content-Type头字段描述数据类型、以及不同数据之间的关系。Content-type分为描述数据类型和描述数据关系两种,例如:Content-type:multipart/related, Content-type:image/application.

MIME协议中Content-ID头字段用于为“multipart/related”组合消息中的内嵌资源指定一个唯一标识号,在HTML格式的正文中可以使用这个唯一标识号来引用该内嵌资源。例如,假设将一个表示内嵌图片的MIME消息的Content-ID头字段设置为如下形式:Content-ID: it315logo_gif那么,在HTML正文中就需要使用如下HTML语句来引用该图片资源:<img src="cid:it315logo_gif"> 注意,在引用Content-ID头字段标识的内嵌资源时,要在资源的唯一标识号前面加上“cid:”,以说明要采用唯一标识号对资源进行引用。

下面开始讲使用JavamailAPI来收发邮件:

使用JavamailAPI发送简单邮件的步骤:

1.       创建包含邮件服务器的网络连接信息的Session对象

2.       创建代表邮件内容的Message对象

3.       创建Transport对象、连接服务器、发送Message、关闭连接

下面爽一下,写一个JavamailAPI收发邮件的程序。

class SendMail {

 

    public static void send(String[] args) throws Exception {

      

       String from = "zyf@zyf.com";

       String to = "zyf@zyf.com";

       String subject = "javamail";

       String content = "I love javamail";

      

       Properties prop = new Properties();

       prop.setProperty("mail.smtp.host", "localhost");

       prop.setProperty("mail.transport.protocol", "smtp");

       prop.setProperty("mail.smtp.auth", "true");

      

       Session session = Session.getInstance(prop);

       session.setDebug(true);

       Message message = createMessage(session,from,to,subject,content);

      

       Transport ts = session.getTransport();

       ts.connect("zyf","123456");

       ts.sendMessage(message, new InternetAddress[]{new InternetAddress(to)});

       ts.close();      

    }

   

    public static Message createMessage(Session session,String from,String to,String subject,String content) throws Exception{

      

       MimeMessage message = new MimeMessage(session);

       message.setFrom(new InternetAddress(from));

       message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));

       message.setSubject(subject);

      

       message.setContent(content, "text/html");

       message.saveChanges();

      

       return message;

    }

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值