1. 邮件验证
import javax.mail.Authenticator; import javax.mail.PasswordAuthentication;
/** *@author EX-QINCIDONG001 *验证 */ publicclass MailAuthorizationextends Authenticator { private Stringusername; private Stringpassword;
public MailAuthorization(String username,String password) { this.username = username; this.password = password; }
@Override protected PasswordAuthentication getPasswordAuthentication() { //TODO Auto-generated method stub returnnew PasswordAuthentication(username,password); }
}
|
2. 邮件信息
mport java.io.File; import java.util.List;
/** *@author EX-QINCIDONG001 *邮件信息 */ publicclass MailInfo { // 服务器地址 private StringhostName; // 端口 private StringhostPort; // 用户名 private StringuserName; private Stringpassword; public String getUserName() { returnthis.userName; } publicvoid setUserName(String userName) { this.userName = userName; } public String getPassword() { returnthis.password; } publicvoid setPassword(String password) { this.password = password; } // 是否需要验证 privatebooleanvalidate =false; // 发件人 private Stringsender; // 收件人 private String[]recvers = {}; // 抄送给哪些人 private String[]ccs = {}; // 邮件主题 private Stringsubject; // 邮件内容 private Stringcontent; // 附件 private List<File>attaches; public String getHostName() { returnthis.hostName; } publicvoid setHostName(String hostName) { this.hostName = hostName; } public String getHostPort() { returnthis.hostPort; } publicvoid setHostPort(String hostPort) { this.hostPort = hostPort; } publicboolean isValidate() { returnthis.validate; } publicvoid setValidate(boolean validate) { this.validate = validate; } public String getSender() { returnthis.sender; } publicvoid setSender(String sender) { this.sender = sender; }
public String[] getRecvers() { returnthis.recvers; } publicvoid setRecvers(String[] recvers) { this.recvers = recvers; }
public String[] getCcs() { returnthis.ccs; } publicvoid setCcs(String[] ccs) { this.ccs = ccs; } public String getSubject() { returnthis.subject; } publicvoid setSubject(String subject) { this.subject = subject; } public String getContent() { returnthis.content; } publicvoid setContent(String content) { this.content = content; } public List<File> getAttaches() { returnthis.attaches; } publicvoid setAttaches(List<File> attaches) { this.attaches = attaches; }
} |
3. 邮件发送
import java.util.Properties;
import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.MessagingException; import javax.mail.Multipart; 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.MimeMessage.RecipientType; import javax.mail.internet.MimeMultipart;
/** *@author EX-QINCIDONG001 *邮件发送。 */ publicclass MailSender { private MailInfomailInfo;
public MailSender(MailInfo mailInfo) { this.mailInfo = mailInfo; }
//发送邮件方法 publicvoid sendMail()throws MessagingException { Properties props = System.getProperties(); props.setProperty("mail.transport.protocol","smtp");// smtp协议 props.put("mail.smtp.host",mailInfo.getHostName()); props.put("mail.smtp.port",mailInfo.getHostPort()); props.put("mail.smtp.auth",mailInfo.isValidate()?"true":"false");
Authenticator authenticator =new MailAuthorization(mailInfo.getUserName(),mailInfo.getPassword()); Session session = Session.getDefaultInstance(props, authenticator);
MimeMessage msg =new MimeMessage(session); msg.setSubject(mailInfo.getSubject(),"utf-8"); Address address =new InternetAddress(mailInfo.getSender()); msg.setFrom(address);
//收信人 Address[] recvs =new Address[mailInfo.getRecvers().length]; int index = 0;
if (mailInfo.getRecvers() !=null) { for (String s :mailInfo.getRecvers()) { Address addr =new InternetAddress(s); recvs[index] = addr; index++; } } msg.setRecipients(RecipientType.TO,recvs); index = 0;
//抄送 Address[] ccs =new Address[mailInfo.getCcs().length]; if (mailInfo.getCcs() !=null) { for (String s:mailInfo.getCcs()) { Address addr =new InternetAddress(s); ccs[index] = addr; index++; } }
msg.setRecipients(RecipientType.CC, ccs);
Multipart mp =new MimeMultipart(); BodyPart part =new MimeBodyPart(); part.setContent(mailInfo.getContent(),"text/html;charset=utf-8");
//增加附件 if (mailInfo.getAttaches() !=null &&mailInfo.getAttaches().size() > 0) {// 有附件 for (int i=0;i<mailInfo.getAttaches().size();i++) { BodyPart bp = new MimeBodyPart(); FileDataSource fds = new FileDataSource((File)mailInfo.getAttaches().get(i)); bp.setDataHandler(new DataHandler(fds)); mp.addBodyPart(bp); } }
mp.addBodyPart(part); msg.setContent(mp);
//Transport transport = session.getTransport(); Transport.send(msg); } }
|
4. 邮件发送测试
import javax.mail.MessagingException;
/** *@author EX-QINCIDONG001 * */ publicclass TestMailSender {
/** *@param args */ publicstaticvoid main(String[] args) { MailInfo mi =new MailInfo(); mi.setValidate(true); mi.setUserName("qincidong@163.com"); mi.setPassword("*******"); mi.setSubject("测试邮件发送"); mi.setSender("qincidong@163.com"); mi.setRecvers(new String[]{"ex-qincidong001@pingan.com.cn","qincidong@qq.com"}); mi.setHostPort("25"); mi.setHostName("smtp.163.com"); mi.setContent("<a href='www.baidu.com'>百度</a>百度知道"); // 添加附件 List<File> attaches = new ArrayList<File>(); attaches.add(new File("D:\\qincidong\\资料\\Ejb\\EJB3.0入门经典-weblogic.pdf")); attaches.add(new File("D:\\qincidong\\资料\\Ejb\\编写第一个EJB应用程序.doc")); mi.setAttaches(attaches);
MailSender sender =new MailSender(mi); try { sender.sendMail(); System.out.println("邮件发送成功。"); }catch (MessagingException e) { System.err.println("邮件发送失败"); e.printStackTrace(); } }
} |
相关推荐
在你提供的压缩包文件中,包含了三个关键元素:activation.jar、mail.jar以及SendMail.java,这些都是Java Mail发邮件所需的基本组件。 `activation.jar` 是JavaBeans Activation Framework (JAF) 的一部分,它是...
Java Mail 发送邮件及邮件附件 Java Mail 是一个广泛使用的 Java 库,用于发送电子邮件。以下是 Java Mail 发送邮件及邮件附件的知识点。 Java Mail 简介 Java Mail 是一个 Java 库,提供了发送电子邮件的功能。...
### Java Mail 发送邮件知识点详解 #### 一、概述 Java Mail API 是一个用于发送与接收电子邮件的标准 Java 库,支持多种协议如 SMTP (Simple Mail Transfer Protocol) 和 POP3 (Post Office Protocol version 3) ...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java应用程序中,我们通常使用JavaMail API来实现邮件的自动化操作,比如发送带有附件的邮件、群发邮件等。下面将...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和操作邮件。这个API提供了广泛的协议支持,包括SMTP(简单邮件传输协议)用于发送邮件,POP3和IMAP4用于接收邮件。在Java Mail中,...
利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋
要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...
下面我们将详细探讨Java Mail发送邮件脚本的核心知识点,以及在实际操作中可能需要的Jar包。 1. **JavaMail API**:JavaMail API是Java中处理电子邮件的标准库,由JavaMail项目维护。它提供了一系列接口和类,包括`...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关任务。它提供了对各种邮件协议(如 SMTP、POP3 和 IMAP)的支持,并且可以与 MIME 格式的邮件内容配合使用,允许发送包含附件、HTML 内容等...
这个“java mail 发邮件 demo程序”是为了演示如何使用JavaMail API发送电子邮件而创建的一个简单示例。在这个DEMO程序中,我们将深入探讨JavaMail API的核心概念以及如何构建一个实际的邮件发送功能。 首先,...
这个标题“Java mail发送邮件(源代码带注释)”表明我们将讨论如何使用JavaMail API来实现电子邮件的发送功能。描述提到,通过简单的赋值和测试,我们可以快速实现邮件发送,这表明提供的源代码应该是一个易于理解且...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和...
Java Mail 是一个强大的开源API,用于处理电子邮件的发送和接收。这个API允许开发者在Java应用程序中集成邮件功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议第三版)等邮件服务协议。本教程将详细介绍如何使用...
以下是一个简单的Java Mail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // ...
要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...
Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...
下面是一个简化的Java Mail发送邮件的步骤,展示了一些关键API的使用: 1. 引入Java Mail依赖:首先确保项目中包含了Java Mail的相关库,通常通过Maven或Gradle等构建工具添加依赖。 2. 创建Properties对象:设置...