用javamail来发邮件
工程项目中所用源码,转载就注明出处!
说实话,好多东西我也不懂,!!!!!!!!!!
以下是发邮件的主体代码
package com.innet.ESP.common.mail;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
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 MailSender {
//String ccAddress,String bccAddress,
public static void sendEmail(String subject,String content,String fromAddress,String toAddress,String filePath,Date sendTime){
try{
Properties props=new Properties();
props.put("mail.smtp.host", Constant.mailServer); //设置smtp服务器地址
props.put("mail.smtp.port", Constant.mailPort); //设置smtp服务器端口
props.put("mail.smtp.auth", Constant.authenticState); //设置smtp服务器验证状态
// 验证用户
PopupAuthenticator popAuthenticator= new PopupAuthenticator();
popAuthenticator.performCheck(Constant.mailUserName,Constant.mailPassword);
Session session=Session.getDefaultInstance(props,popAuthenticator); //获取邮件会话session
// 设置邮件信息
MimeMessage msg=new MimeMessage(session);
if(sendTime!=null){ //设置发送日期
msg.setSentDate(sendTime);
}
if(fromAddress!=null&&!fromAddress.equalsIgnoreCase("")){ //设置发件人地址
msg.setFrom(new InternetAddress(fromAddress)); //发件人地址
msg.setSender(new InternetAddress(fromAddress));
}
if(subject!=null&&!subject.equalsIgnoreCase("")){ //设置邮件主题
msg.setSubject(subject,"gb2312"); //邮件主题
}
msg.setText("测试用werrrrrrrrrrrrrrrrrrtwetwetwe", "UTF-8"); //邮件文本内容
InternetAddress[] toAdressArr=null;
InternetAddress[] ccAdressArr=null;
InternetAddress[] bccAdressArr=null;
if(toAddress!=null&&!toAddress.equalsIgnoreCase("")){ //设置收件人
toAdressArr=new InternetAddress[Constant.addressSize];
toAdressArr[0]=new InternetAddress(toAddress); //可设置多个收件人
// toAdressArr[1]=new InternetAddress("wyw@in-net.com.cn");
msg.setRecipients(Message.RecipientType.TO, toAdressArr); //收件人地址(地址集合)
}
/*if(ccAddress!=null&&!ccAddress.equalsIgnoreCase("")){ //设置抄送人
ccAdressArr=new InternetAddress[Constant.addressSize];
ccAdressArr[0]=new InternetAddress(ccAddress); //可设置多个抄送人
msg.setRecipients(Message.RecipientType.CC, ccAdressArr); //抄送地址(地址集合)
}
if(bccAddress!=null&&!bccAddress.equalsIgnoreCase("")){ //设置暗送人
bccAdressArr=new InternetAddress[Constant.addressSize];
bccAdressArr[0]=new InternetAddress(bccAddress); //可设置多个暗送人
msg.setRecipients(Message.RecipientType.BCC, bccAdressArr); //暗送地址(地址集合)
}*/
// Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
Multipart mp=new MimeMultipart();
if(content!=null&&!content.equalsIgnoreCase("")){
BodyPart bp = new MimeBodyPart();
bp.setContent(content,"text/html;charset=gb2312"); //邮件内容
mp.addBodyPart(bp);
}
if(filePath!=null&&!filePath.equalsIgnoreCase("")){ //设置邮件附件
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filePath);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
mp.addBodyPart(bp);
}
msg.setContent(mp);
msg.saveChanges(); //保存邮件信息
Transport transport=session.getTransport("smtp"); //获取邮件发送载体
System.out.println("---->准备发送邮件,请稍后........");
transport.connect(Constant.mailServer, Constant.mailUserName, Constant.mailPassword); //获取邮箱连接
transport.sendMessage(msg, msg.getAllRecipients()); //发送邮件
System.out.println("---->邮件发送完毕!........");
transport.close();
}catch(Exception e){
System.out.println("发送邮件失败!"+e.getMessage());
}
}
}
//这个是用户验证
package com.innet.ESP.common.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class PopupAuthenticator extends Authenticator{
public PopupAuthenticator() {
}
//javamail的用户名秘码验证
public PasswordAuthentication performCheck(String userName, String password) {
return new PasswordAuthentication(userName, password);
}
}
还有就是配置文件,这个是单独写出来,免得换服务邮箱的时候出错
注意这是一个类
public class Constant {
public final static String mailServer="smtp.qq.com"; //这里写smtp服务器的地址 此处为QQ的smtp 地址可更改
public final static String mailPort="25"; //这里是端口号的定 义
public final static String mailUserName=""; //你的邮箱地址,用于发送最件比如24344234(用QQ邮箱 发送的时候这里就写你的QQ号)
public final static String mailPassword=""; //你邮箱的秘码(用QQ邮箱发送的时候就是你的QQ秘码)
public final static String authenticState="true"; //smtp服务器验证状态
public final static int addressSize=1; //不用更改
public final static int delayTime=5000; //不用更改
public static String serverMailName=; //你的邮箱地址比如32323@qq.com
}
然后就是调用了写一个main方法,里边写如下代码
String cc = "你的用户名是:admin</tr>你的秘码是:admin";
String subject="title";
String content="你的用户名是:admin<br>你的秘码是:admin";
String fromAddress=Constant .serverMailName
String toAddress="zhang7789@yahoo.com.cn";*/
String filePath="d:\\test.txt";
Date sendTime = new Date();
TextSend send = new TextSend()*/
MailSender.sendEmail(subject, content, fromAddress, toAddress, filePath,sendTime);
这样发送一个带附件的邮件进入我的邮箱,
如果出错的话一般就是jar包的问题,上传一个javamail的jar包 ,如果发生错误请及时联系我,
zhang7789@yahoo.com.cn
读本人博客代码如有任何疑问或代码不能执行,请速联系本人
zhang7789@yahoo.com.cn
分享到:
相关推荐
我们可以使用 Transport 对象来发送邮件, Transport 对象是 JavaMail 库中的一个核心对象,用于发送和接收电子邮件。我们可以使用 Transport 对象的 send 方法来发送邮件。 在发送邮件之前,我们需要设置邮件...
在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...
总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤的综合平台,通过利用JavaMail库和朴素贝叶斯算法,提供了一种高效且用户友好的邮件管理方案。开发者在设计时考虑到了用户体验和安全,使其...
4. **Multipart对象**:如果邮件包含多个部分(如文本和附件),我们需要使用Multipart对象来组合这些部分。`Multipart mp = new MimeMultipart();`。 5. **BodyPart对象**:用于创建邮件的各个部分,如文本或附件...
2. IMAP 和 POP3 协议:对于邮件接收,JavaMail 提供了 `Folder` 和 `Message` 类来处理IMAP或POP3服务器上的邮箱。IMAP 允许用户在线查看邮件,而POP3通常将邮件下载到本地存储。使用 `Store` 类连接到服务器,然后...
基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...
在这个主题“javaMail学习(七)——使用javaMail发复杂邮件”中,我们将深入探讨如何使用 JavaMail API 发送包含多种附件、HTML 内容和其他复杂元素的邮件。在提供的文件列表中,我们看到一系列名为 MailUtils 的类,...
JavaMail是一个用于在Java应用程序中处理邮件的API,它提供了一种标准的方式来发送和接收电子邮件。本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`...
在使用JavaMail进行Gmail邮件的收发时,需要注意几个关键点: 1. **SSL加密**: 为了确保数据的安全传输,通常会使用SSL加密技术。 2. **Gmail的SMTP和POP3设置**: - SMTP服务器地址: smtp.gmail.com - SMTP端口: ...
通过一个具体的案例来深入理解JavaMail在Web邮件客户端中的应用。例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的...
总结来说,JavaMail 为开发者提供了一个强大且灵活的工具,用于在 Java 应用中处理邮件的发送和接收。通过理解 POP3 和 IMAP 协议,以及如何使用 JavaMail API,开发者可以轻松地构建出高效、安全的邮件应用。无论是...
以下是一个简单的使用JavaMail发送邮件的示例代码片段: ```java Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail....
本资料包主要涵盖了使用 JavaMail 实现回执邮件以及相关邮件操作的知识点。 首先,发送带有回执请求的邮件是通过设置邮件头实现的。在创建 `MimeMessage` 对象时,可以调用 `setHeader()` 方法添加特定的头字段。...
总之,"JavaMail(JAVA邮件服务器)API详解"这个资源将提供一个全面的指南,帮助Java开发者充分利用JavaMail API来构建高效、可靠的邮件系统,无论是简单的日志报告还是复杂的邮件应用,都能得心应手。通过深入学习和...
JavaMail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能来处理复杂的邮件操作。在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的...
JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、...
在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送功能。 首先,我们需要引入JavaMail所需的依赖库。在提供的文件列表中,我们看到有以下jar文件: 1. mail.jar:这是JavaMail的核心库,包含了...
3. **创建邮件消息**:使用`Message`类实例化一个邮件对象,并设置必要的属性,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress(...
本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> <artifactId>...
在这个项目中,我们将会探讨如何使用 JavaMail 实现单发和群发邮件的操作。 首先,为了使用 JavaMail 发送邮件,我们需要引入相关的依赖。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...