package com.util.mail;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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.MimeMultipart;
public class SendMail {
//static Logger log=Logger.getLogger("SendMail.class");
private String smtpServer = "";//smtp.sina.com
private String smtpAuth = "";//true
private String smtpUser = "";//xxxxxxxxxx
private String smtpPassword = "";//xxxxxxxxxx
private String From = "";//xxxxxxxxxx@sina.com
public SendMail(){
}
/**
* 发送邮件的方法。
* @param mailTo 邮件接受人
* @param mailSubject 邮件的主题
* @param mailBody 邮件的内容
* @param filename 附件的名称 格式:附件名称1;附件名称2
* @param fileAddress 附件的地址 格式:附件地址1;附件地址2 (地址的个数必须和附件名称的个数相匹配)
* @return
*/
public boolean sendMailFile(String mailTo,String mailSubject,String mailBody,String filename,String fileAddress){
//发送email
try {
String Subject = mailSubject;
String Text = mailBody;
Properties props = new Properties();
Session sendMailSession;
Transport transport;
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", smtpAuth);
if ("true".equals(smtpAuth)) {
//smtp服务器需要验证,用MyAuthertiactor来创建mail session
MyAuthenticator myauth = new MyAuthenticator(smtpUser, smtpPassword);
sendMailSession = Session.getInstance(props, myauth);
}
else {
sendMailSession = Session.getInstance(props);
}
//Debug
sendMailSession.setDebug(true);
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(From));
newMessage.setRecipient(Message.RecipientType.TO,
new InternetAddress(mailTo));
newMessage.setSubject(Subject);
newMessage.setSentDate(new Date());
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText(Text);
Multipart container = new MimeMultipart();
container.addBodyPart(textBodyPart);
if(filename!=null&&!"".equalsIgnoreCase(filename)){
String[] fileStr=filename.split(";");
for(int i=0;i<fileStr.length;i++){
MimeBodyPart mbp = new MimeBodyPart();
//选择出每一个附件名
String file = fileStr[i];
//得到数据源
FileDataSource fds = new FileDataSource(fileAddress.split(";")[i]);
//得到附件本身并至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
//mbp.setFileName(file);
mbp.setFileName( new String(file.getBytes(), "ISO8859-1"));
container.addBodyPart(mbp);
}
}
newMessage.setContent(container);
newMessage.saveChanges();
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage, newMessage.getAllRecipients());
transport.close();
}
catch (Exception mailEx) {
System.err.println("Send Mail Error:" + mailEx.getMessage());
mailEx.printStackTrace();
return false;
}
return true;
}
public static void main(String args[]) {
SendMail mail = new SendMail();
mail.sendMailFile("zhengxiaowei@businessmatrix.com.cn", "邮件主题", "邮件内容","附件11;附件12","c:/accept.txt;c:/unaccept.txt");
}
}
分享到:
相关推荐
使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 ...
这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于接收邮件。在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要...
- JavaMail API提供了一系列接口和类,允许开发者通过SMTP(Simple Mail Transfer Protocol)协议发送邮件。 - 主要涉及的接口和类包括:`Session`(邮件会话)、`Message`(邮件对象)、`Transport`(传输服务)...
不过,需要注意的是,使用JavaMail发送邮件时,必须确保你的SMTP服务器允许第三方应用程序进行授权,并且可能需要开启“不够安全的应用”的权限(对于Gmail而言)。 在提供的压缩包文件`Mail`中,可能包含了一些...
Java SMTP 发送邮件是Java开发中常见的功能,用于在应用程序中...总的来说,Java SMTP发送邮件涉及JavaMail API的使用,SMTP服务器的配置,以及邮件内容的构建。理解这些知识点,就能轻松地在Java项目中实现邮件功能。
JavaMail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能来处理复杂的邮件操作。在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的...
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...
JavaMail 是一个强大的开源库,用于在 Java 应用程序中发送和接收电子邮件。要实现定时发送邮件,我们可以结合 JavaMail 和 Java 计时器框架(如文中提到的 Java Timer)。以下是一个详细的步骤来实现这个功能: 1....
JavaMail 是一个强大的开源库,专门用于在Java应用程序中实现电子邮件的发送和接收。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,IMAP(因特网消息访问协议)和POP3(邮局协议)用于接收邮件。在...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...
在IT行业中,发送电子邮件是一项常见的任务,而JavaMail是一个广泛使用的API,用于处理与电子邮件相关的各种操作。在尝试使用JavaMail发送邮件时,如果邮件服务器要求使用SSL(Secure Socket Layer)或TLS...
### JavaMail JSP 发送邮件的关键知识点 #### 一、JavaMail 概述与应用场景 - **JavaMail API**:是 Java 平台上用于发送、接收、读取和管理电子邮件的标准 API。它允许应用程序发送和接收多种类型的邮件,包括纯...
JavaMail是Java编程环境中用于处理电子邮件的一套API,它提供了丰富的功能,允许开发者发送、接收、存储和管理邮件。在JavaMail API详解的资源中,我们可以深入理解这一强大的工具。 首先,JavaMail API简介部分会...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个功能通常涉及到SMTP(简单邮件传输协议)和其他相关的互联网邮件协议。在JavaMail中,`mail.jar` 和 `activation.jar` 是两个关键的库...
JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中实现电子邮件的发送和接收。这个API遵循了互联网标准,如SMTP(简单邮件传输协议), POP3(邮局协议)以及 IMAP(因特网消息访问协议)。在JavaMail...
本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...
这个API 提供了丰富的类和接口,可以处理 SMTP、POP3 和 IMAP 协议,用于发送、接收和管理电子邮件。在本篇中,我们将深入探讨如何利用 JavaMail 实现发送邮件。 首先,要使用 JavaMail,我们需要引入必要的库。...