`

Java Mail发送邮件

阅读更多

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();

}

}

 

}

分享到:
评论

相关推荐

    java mail发邮件

    在你提供的压缩包文件中,包含了三个关键元素:activation.jar、mail.jar以及SendMail.java,这些都是Java Mail发邮件所需的基本组件。 `activation.jar` 是JavaBeans Activation Framework (JAF) 的一部分,它是...

    java Mail 发送邮件及邮件附件

    Java Mail 发送邮件及邮件附件 Java Mail 是一个广泛使用的 Java 库,用于发送电子邮件。以下是 Java Mail 发送邮件及邮件附件的知识点。 Java Mail 简介 Java Mail 是一个 Java 库,提供了发送电子邮件的功能。...

    Java Mail 发送邮件

    ### Java Mail 发送邮件知识点详解 #### 一、概述 Java Mail API 是一个用于发送与接收电子邮件的标准 Java 库,支持多种协议如 SMTP (Simple Mail Transfer Protocol) 和 POP3 (Post Office Protocol version 3) ...

    java mail 发送邮件

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java应用程序中,我们通常使用JavaMail API来实现邮件的自动化操作,比如发送带有附件的邮件、群发邮件等。下面将...

    java mail 发送邮件代码与架包

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和操作邮件。这个API提供了广泛的协议支持,包括SMTP(简单邮件传输协议)用于发送邮件,POP3和IMAP4用于接收邮件。在Java Mail中,...

    Java mail发送邮件

    利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋

    使用 java mail 发送邮件

    要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...

    Java Mail发送邮件脚本及所需全部Jar包

    下面我们将详细探讨Java Mail发送邮件脚本的核心知识点,以及在实际操作中可能需要的Jar包。 1. **JavaMail API**:JavaMail API是Java中处理电子邮件的标准库,由JavaMail项目维护。它提供了一系列接口和类,包括`...

    java mail发送邮件

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关任务。它提供了对各种邮件协议(如 SMTP、POP3 和 IMAP)的支持,并且可以与 MIME 格式的邮件内容配合使用,允许发送包含附件、HTML 内容等...

    java mail 发邮件 demo程序

    这个“java mail 发邮件 demo程序”是为了演示如何使用JavaMail API发送电子邮件而创建的一个简单示例。在这个DEMO程序中,我们将深入探讨JavaMail API的核心概念以及如何构建一个实际的邮件发送功能。 首先,...

    Java mail发送邮件(源代码带注释)

    这个标题“Java mail发送邮件(源代码带注释)”表明我们将讨论如何使用JavaMail API来实现电子邮件的发送功能。描述提到,通过简单的赋值和测试,我们可以快速实现邮件发送,这表明提供的源代码应该是一个易于理解且...

    用java mail发邮件源码,支持多种邮局,支持单发和群发

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和...

    java mail发送邮件(源代码+注释)

    Java Mail 是一个强大的开源API,用于处理电子邮件的发送和接收。这个API允许开发者在Java应用程序中集成邮件功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议第三版)等邮件服务协议。本教程将详细介绍如何使用...

    java mail 邮件发送

    以下是一个简单的Java Mail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // ...

    java mail 发送QQ邮件

    要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...

    Java Mail邮件发送源码下载

    Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...

    Java Mail demo (仅发送邮件)

    下面是一个简化的Java Mail发送邮件的步骤,展示了一些关键API的使用: 1. 引入Java Mail依赖:首先确保项目中包含了Java Mail的相关库,通常通过Maven或Gradle等构建工具添加依赖。 2. 创建Properties对象:设置...

Global site tag (gtag.js) - Google Analytics