一、java Mail 简单案例 学习笔记
基于Maven前期准备(这里使用1.4.7为例)
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
1、发送邮件代码如下所示
package com.xxxxx.mp2.utils; import java.io.File; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class SendEmail { public static void main(String[] args) { new SendEmail().sendEmails("xxxxxs@xxx.com"); } /** * * @param email 接收方 邮件地址 */ public void sendEmails(String email){ try { //定义电子邮件 MimeMessage msg = nakeMail("标题","内容",new InternetAddress(email)); //发送电子邮件 Transport.send(msg); } catch (Exception e) { e.printStackTrace(); } } /** * * @param title 邮件标题 * @param content 邮件内容 * @param email to EmailAddress 邮件接收方 数组 * @return */ private MimeMessage nakeMail(String title,String content,InternetAddress ... email) throws Exception { //定义发送邮件的属性信息 Properties prop = new Properties(); //使用发送邮件的服务器 常见的有 smtp.163.com smtp.21cn.com smtp.sina.com.cn smtp.sohu.com smtp.126.com prop.put("mail.smtp.host", "smtp.xxxxxx.com"); //通知邮件服务器为此次访问授权 prop.put("mail.smtp.auth", "true"); //创建会话 java 详见: http://haolloyin.blog.51cto.com/1177454/354585 Session session = Session.getDefaultInstance(prop, new Authenticator(){ @Override protected PasswordAuthentication getPasswordAuthentication() { //form email Address and password return new PasswordAuthentication("邮箱发送方用户名","邮箱密码"); } }); //设置为调试会话 ----在运行过程中会将发送邮件的实时日志打印到控制台 session.setDebug(true); //电子邮件汇总信息 MimeMessage message = new MimeMessage(session); //邮件发送方 message.setFrom(new InternetAddress("邮箱用户名")); message.setRecipients(Message.RecipientType.TO, email); //邮件标题 message.setSubject(title); //邮件内容 message.setText(content, null, "html"); //查找附件是否存在 File file = new File("附件地址"); if(file.exists()){ //邮件正文对象-定义一个空的邮件正文对象 MimeMultipart allPart = new MimeMultipart("mixed"); //定义附件存放容器对象--定义一个空的附件存放容器 MimeBodyPart attachmentPart1 = new MimeBodyPart(); MimeBodyPart attachmentPart2 = new MimeBodyPart(); //读取附件信息 FileDataSource fds1 = new FileDataSource("附件地址"); FileDataSource fds2 = new FileDataSource("附件地址"); //将附件信息存入到空容器中 attachmentPart1.setDataHandler(new DataHandler(fds1)); attachmentPart2.setDataHandler(new DataHandler(fds2)); //附件名称 attachmentPart1.setFileName(fds1.getName()); attachmentPart2.setFileName(fds2.getName()); //将附件容器对象存放到邮件正文中 allPart.addBodyPart(attachmentPart1); allPart.addBodyPart(attachmentPart2); //将新的正文叠加到电子邮件中 message.setContent(allPart); //将修改同步到电子邮件中--刷新同步 message.saveChanges(); } return message; } }
2、常遇问题
1)、未加授权,以下授权代码未加
prop.put("mail.smtp.auth", "true");
错误内容如下:
javax.mail.MessagingException: Can't send command to SMTP host;
nested exception is:
java.net.SocketException: Software caused connection abort: socket write error
2)、邮件内容包含链接地址时,为个别邮箱发送邮件时,需要在邮件内容或邮件标题中加上"邮件验证"四个字,否则个别邮箱始终无法收到邮件(qq)。
相关推荐
该资源包含了java mail开发所需要的jar,如下: commons-email-1.2-bin.zip commons-email-1.4-bin.zip javamail_1.4.6.zip javamail_1.4.7.zip javax.mail.jar mailapi.jar smtp.jar
java mail 1.4.5 jar包、源代码、doc文档,还有包含所依赖的jaf 1.1.1的jar包和源代码 。
Java Mail.rar 利用其jar包可以利用java发送邮件的功能,javamail是一个非常有用的jar
java mail开发所需jar包:activation.jar,j2ee.jar,mail.jar,放在了lib.rar中
张孝祥的java mail开发教程 Java Mail API的开发是SUN为Java开发者提供公用API框架的持续努力的良好例证。提倡公用框架,反对受限于供应商的解决方案, 充分预示着一个日益开放的开发环境的建立。Java Mail API的...
用java mail发邮件源码,支持多种邮局,支持单发和群发。
NULL 博文链接:https://wenxiang-tune.iteye.com/blog/846379
封装了一个java mail的jar包,只需设置邮件的基本信息 就可发邮件: //这个类主要是设置邮件 MailSenderInfo mailInfo = new MailSenderInfo(); mailInfo.setMailServerHost("smtp.163.com"); mailInfo....
用java 开发email 使用的包都有了 mail-1.4.1.jar activation.jar commons-email-1.2.jar commons-email-1.2-javadoc.jar commons-email-1.2-sources.jar
Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java...
java mail 邮件发送,可发送附件;多个附件以,号分开;可抄送、密送等多个抄送、密送以,号分开。详细发送DEMO参考SendMailTest.java类: SendMailInfo mailInfo = new SendMailInfo("mail.china1168.com", true, ...
Java mail server, used for development.
基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过调用java mail实现邮件的收发。 基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过...
文中使用Java mail API写的邮件收发例子。
Java Mail中文文档 Java Mail中文文档
java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器
java mail 1.4 源码 自己要用就下载了,拿出来分享一下,大家也可以看看java mail 的源码是怎么写的.
javaMail jar包 解压后把activation.jar和javax.mail.jar 拷贝到 WEB-INF/lib 下就可以直接在项目中使用 这是我从官网找了好久找到的jar包,我把下载到的一个api的jar包也放里面了。