没什么可说的,直接上代码吧:
package com.wjl.mail.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; /** * 邮件发送的工具类 * 使用eyoumailserver,内部账户发邮件 */ /* javax.mail.Session:上下文环境信息,如服务器的主机名、端口号、协议名称等 javax.mail.Message:邮件模型,发送邮件和接收邮件的媒介,封装了邮件的信息,如发件人、收件人、邮件标题、邮件内容等 javax.mail.Transport:连接邮件SMTP服务器,发送邮件 javax.mail.Store:连接邮件POP3、IMAP服务器,收取邮件 */ public class MailUtils2 { private static String userName = "user03@wjl.com";//发送邮件的人 private static String password = "123456";//发送邮件的账户的密码 private static String userName2 = "user04@wjl.com";//接收邮件的人 private static String port = "25";//465、587 /** * 该方法用来发送邮件 * @param to:给谁发邮件 * **/ public static void sendMain(String to) throws AddressException, MessagingException{ //1、创建连接对象,连接到邮箱服务器 Properties props = new Properties(); //开启debug调试 props.setProperty("mail.debug", "true"); //stmp服务器需要进行身份验证,也就是有户名和密码的校验,这样才能通过验证 props.setProperty("mail.smtp.auth", "true"); //发送邮件协议名称 props.setProperty("mail.transport.protocol", "smtp"); //设置邮件服务器主机名 props.setProperty("mail.host", "127.0.0.1");//本地 //设端口号(该配置可写可不写) props.setProperty("mail.smtp.port", port); //Authenticator:认证信息 Session session = Session.getInstance(props, new Authenticator(){ @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(userName,password);//使用它给其他账户发邮件 } }); //2、创建邮件对象 Message message = new MimeMessage(session); //2.1设置发件人 message.setFrom(new InternetAddress(userName)); //2、2设置收件人 message.setRecipient(RecipientType.TO, new InternetAddress(to)); //2.3邮件的主题 message.setSubject("测试发消息"); //2.4邮件的正文(即邮件的内容) message.setContent("测试邮件:来自user03@wjl.com的邮件","text/html;charset=utf-8"); //3.发送邮件 Transport trans = session.getTransport(); //连接邮件服务器 trans.connect(userName, password); //发送邮件 trans.sendMessage(message, message.getAllRecipients()); //关闭连接 trans.close(); //Transport.send(message);(两种方式都可以) System.out.println("发送成功"); } public static void main(String[] args) { try { sendMain(userName2); } catch (Exception e) { e.printStackTrace(); } } }
执行成功之后,使用Foxmail查看邮件。
说明邮件发送成功了。
可能遇到的问题:
执行代码时报错:java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
原因是jar包版本不统一,javaMail与Java EE 5 Libraries/javaee.jar/mail里的包有东西冲突。
解决办法:将Java EE 5 Libraries换成Java EE 6 Libraries
Libraries替换:
选中项目右击---->Properties---->Java Build Path---->Add Library,如图:
选默认的“MyEclipse Libraries” 。
勾选“Java EE 6 Libraries” 。然后Finish。
此时Libraries中有两个Libraries,一个5一个6,将Java EE 5 Libraries删除,然后确定。
再执行代码,就不会再报错啦。
相关推荐
javamail例子——简单好用 可以直接发电子邮件 1.当工程是java EE 5的时候 在工程里面应该删除java EE 5里面相对应的 jar 路径在 第一个问题就是删除Java EE 5 Libraries/javaee.jar/mail。 第二个问题就是删除Java...
NULL 博文链接:https://1017401036.iteye.com/blog/2407507
使用JAVAMail代发邮件 资源源于不但搜索,自由源于不但努力
介绍了使用javamail发送电子邮件时所需要使用的类,还有代码示例
介绍了如何利用javamail实现带附件的邮件发送,附有代码
JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API
java 发邮件java 发邮件java 发邮件java 发邮件
javamail 回执邮件资料
此源码是使用javamail发送邮件,可以实现静默发送邮件,可以发送附件资源等。有相应的使用说明,快捷好用
JSP学习系列之JavaMail发邮件 JSP学习系列之JavaMail发邮件
资源包括邮件的发送、邮件的接收、查看邮件总数量和未读邮件数以及查看未读邮件并标记已读,还有我自己编写的简单的文档。希望能帮助需要帮助的筒子们
基于javaMail电子邮件系统的设计(含源文件).pdf基于javaMail电子邮件系统的设计(含源文件).pdf基于javaMail电子邮件系统的设计(含源文件).pdf基于javaMail电子邮件系统的设计(含源文件).pdf基于javaMail电子邮件系统...
javamail发送邮件;支持群发、单次发送;文本发送,html发送
使用Java完成的简单邮箱系统,界面由Java Swing实现,具有以下功能: 1、邮件收发等邮箱基本功能 2、可设置黑名单、白名单,并过滤邮件 3、使用朴素贝叶斯算法检测评估邮件是否为垃圾邮件
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor
james_javamail邮件服务学习james_javamail邮件服务学习
基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...
介绍了如何利用javamail实现给多人发送电子邮件,附有代码
怎么用JavaMail收取邮件.doc怎么用JavaMail收取邮件.doc
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,