【Java邮件开发】5.编写一个JavaMail发送邮件的程序
2017-05-07 13:32
525 查看
之前我们对JavaMail的API进行了简单的介绍,并下载了相应的jar包。
这次,我们要着手使用JavaMail开发一个可以发送邮件的程序。
1.创建工程
首先我们在Eclipse中新建一个名为JavaMailTest的工程:
然后我们新建一个lib文件夹,将mail.jar放入文件夹中,然后右键选择
Build Path-->add to build path将其引入开发环境中:
在工程中新建一个位于cn.com.javamail包下的类,名为JavaMailTest1:
2.编写代码
我们在JavaMailTest1类中创建一个main函数:
我们要编写发送邮件的程序,就必须先创建一封邮件,我们来编写创建邮件
信息的代码。
使用JavaMail发送一封简单邮件的步骤:
(1)创建代表邮件服务器的网络连接信息的Session对象。
(2)创建代表邮件内容的Message对象
(3)创建Transport对象、连接服务器、发送Message、关闭连接。
我们的代码编写如下:
运行结果:
分析结果:
其中,我们可以看到,程序首先连接了位于25号端口的sina的SMTP服务器:
DEBUG SMTP: trying to connect to host "smtp.sina.com", port 25, isSSL false
220 smtp-2-32.smtpsmail.fmail.yf.sinanode.com ESMTP
DEBUG SMTP: connected to host "smtp.sina.com", port: 25
然后进行了auth验证,验证了用户名和密码是否正确:
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN succeeded
通过succeeded可以看到连接是通过的。然后就是组装邮件信息:
MAIL FROM:<emailtest3087@sina.com>
250 ok
RCPT TO:<emailtest3842@126.com>
250 ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: emailtest3842@126.com
DATA
354 End data with <CR><LF>.<CR><LF>
From: emailtest3087@sina.com
Message-ID: <1311159931.0.1492350927193.JavaMail."wuliII"@LAPTOP-79JCNN74>
MIME-Version: 1.0
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64
之后成功发送邮件,并推出发送邮箱:
250 ok queue id 249384396005
QUIT
我们登录126邮箱,看一下我们是否收到邮件:
发现邮件成功投递到我们的126测试邮箱!
至此,我们的入门级JavaMail发送邮件的程序就编写完毕了。
转载请注明出处:http://blog.csdn.net/acmman/article/details/71322492
这次,我们要着手使用JavaMail开发一个可以发送邮件的程序。
1.创建工程
首先我们在Eclipse中新建一个名为JavaMailTest的工程:
然后我们新建一个lib文件夹,将mail.jar放入文件夹中,然后右键选择
Build Path-->add to build path将其引入开发环境中:
在工程中新建一个位于cn.com.javamail包下的类,名为JavaMailTest1:
2.编写代码
我们在JavaMailTest1类中创建一个main函数:
package cn.com.javamail; public class JavaMailTest1 { public static void main(String[] args) { } }
我们要编写发送邮件的程序,就必须先创建一封邮件,我们来编写创建邮件
信息的代码。
使用JavaMail发送一封简单邮件的步骤:
(1)创建代表邮件服务器的网络连接信息的Session对象。
(2)创建代表邮件内容的Message对象
(3)创建Transport对象、连接服务器、发送Message、关闭连接。
我们的代码编写如下:
package cn.com.javamail; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class JavaMailTest1 { public static int ReceivedCount=1;//接收邮件地址的数组大小 public static void main(String[] args) throws MessagingException { //1.创建信息配置对象,并配置相应信息 Properties props = new Properties(); //属性mail.debug是确定是否是开发模式,true为是,false为否 //属性mail.transport.protocol设置要使用的邮件协议 //属性mail.smtp.auth设置发送时是否校验用户名和密码 //还有其他属性,请查看相关文档 props.setProperty("mail.debug", "true"); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.auth", "true"); //2.通过配置信息创建session对像 Session session = Session.getInstance(props); //session设置dbug的时候会将整个邮件交互过程信息打印早控制台 session.setDebug(true); //3.通过session对象获取Message邮件信息对象 Message msg = new MimeMessage(session); //设置邮件信息对象的各种字段信息 msg.setText("你好朋友!");//邮件正文 msg.setFrom(new InternetAddress("emailtest3087@sina.com"));//邮件接收地址 //3.获取传输对象,进行邮件发送 Transport transport= session.getTransport(); //连接信息:邮件服务器地址,端口号,用户名,密码 transport.connect("smtp.sina.com",25,"emailtest3087", "123qwe"); //创建邮件接收地址数组,并放置一个邮箱接收地址。 Address [] addresies=new Address[ReceivedCount];//数组大小为上面的成员变量指定 addresies[0]=new InternetAddress("emailtest3842@126.com"); transport.sendMessage(msg,addresies); //4.关闭传输对象 transport.close();//关闭传输对象 } }
运行结果:
DEBUG: JavaMail version 1.4.7 DEBUG: successfully loaded resource: /META-INF/javamail.default.providers DEBUG: Tables of loaded providers DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]} DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]} DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map DEBUG: setDebug: JavaMail version 1.4.7 DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.sina.com", port 25, isSSL false 220 smtp-2-32.smtpsmail.fmail.yf.sinanode.com ESMTP DEBUG SMTP: connected to host "smtp.sina.com", port: 25 EHLO LAPTOP-79JCNN74 250-smtp-2-32.smtpsmail.fmail.yf.sinanode.com 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-STARTTLS 250 8BITMIME DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN" DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN" DEBUG SMTP: Found extension "STARTTLS", arg "" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM DEBUG SMTP: AUTH LOGIN command trace suppressed DEBUG SMTP: AUTH LOGIN succeeded DEBUG SMTP: use8bit false MAIL FROM:<emailtest3087@sina.com> 250 ok RCPT TO:<emailtest3842@126.com> 250 ok DEBUG SMTP: Verified Addresses DEBUG SMTP: emailtest3842@126.com DATA 354 End data with <CR><LF>.<CR><LF> From: emailtest3087@sina.com Message-ID: <1311159931.0.1492350927193.JavaMail."wuliII"@LAPTOP-79JCNN74> MIME-Version: 1.0 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 xOO6w8Xz09GjoQ== . 250 ok queue id 249384396005 QUIT 221 smtp-2-32.smtpsmail.fmail.yf.sinanode.com
分析结果:
其中,我们可以看到,程序首先连接了位于25号端口的sina的SMTP服务器:
DEBUG SMTP: trying to connect to host "smtp.sina.com", port 25, isSSL false
220 smtp-2-32.smtpsmail.fmail.yf.sinanode.com ESMTP
DEBUG SMTP: connected to host "smtp.sina.com", port: 25
然后进行了auth验证,验证了用户名和密码是否正确:
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN succeeded
通过succeeded可以看到连接是通过的。然后就是组装邮件信息:
MAIL FROM:<emailtest3087@sina.com>
250 ok
RCPT TO:<emailtest3842@126.com>
250 ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: emailtest3842@126.com
DATA
354 End data with <CR><LF>.<CR><LF>
From: emailtest3087@sina.com
Message-ID: <1311159931.0.1492350927193.JavaMail."wuliII"@LAPTOP-79JCNN74>
MIME-Version: 1.0
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64
之后成功发送邮件,并推出发送邮箱:
250 ok queue id 249384396005
QUIT
我们登录126邮箱,看一下我们是否收到邮件:
发现邮件成功投递到我们的126测试邮箱!
至此,我们的入门级JavaMail发送邮件的程序就编写完毕了。
转载请注明出处:http://blog.csdn.net/acmman/article/details/71322492
相关文章推荐
- 【JavaMail开发总结】编写简单的发送邮件程序
- 【java开发的邮件发送程序】
- Java编写QQ邮件发送程序
- Java程序中使用JavaMail发送带图片和附件的邮件
- 【JavaMail开发总结】配置文件形式--发送邮件程序
- java开发的邮件发送程序
- java开发的邮件发送程序
- 用JavaMail API编写可带附件的邮件发送程序
- 用Java编写邮件发送程序
- Javamail,编写简单的程序发送邮件
- 一个用java发送邮件的简单小程序
- 编写一个C#Windows服务程序,定时从数据库中拿出记录发送邮件。
- 用Java类实现JavaMail发送邮件的例子-Java基础-Java-编程开发
- 【转】javamail-基于SMTP的JAVA邮件发送程序!
- javaMail编写发送邮件的程序,以及遇到的问题
- 编写一个Windows服务程序,定时从数据库中拿出记录发送邮件
- 怎样用delphi编写一个在线发送邮件的程序
- JSP与JavaMail(6)---编写灵活的邮件发送程序
- JSP与JavaMail(6)---编写灵活的邮件发送程序
- 用JavaMail API编写可带附件的邮件发送程序