`

用javamail来发邮件

阅读更多

用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

 

分享到:
评论

相关推荐

    使用JAVAMail代发邮件

    我们可以使用 Transport 对象来发送邮件, Transport 对象是 JavaMail 库中的一个核心对象,用于发送和接收电子邮件。我们可以使用 Transport 对象的 send 方法来发送邮件。 在发送邮件之前,我们需要设置邮件...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤的综合平台,通过利用JavaMail库和朴素贝叶斯算法,提供了一种高效且用户友好的邮件管理方案。开发者在设计时考虑到了用户体验和安全,使其...

    javaMail 发邮件

    4. **Multipart对象**:如果邮件包含多个部分(如文本和附件),我们需要使用Multipart对象来组合这些部分。`Multipart mp = new MimeMultipart();`。 5. **BodyPart对象**:用于创建邮件的各个部分,如文本或附件...

    javamail 收发电子邮件

    2. IMAP 和 POP3 协议:对于邮件接收,JavaMail 提供了 `Folder` 和 `Message` 类来处理IMAP或POP3服务器上的邮箱。IMAP 允许用户在线查看邮件,而POP3通常将邮件下载到本地存储。使用 `Store` 类连接到服务器,然后...

    基于Javamail的邮件收发系统.zip

    基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...

    javaMail学习(七)——使用javaMail发复杂邮件

    在这个主题“javaMail学习(七)——使用javaMail发复杂邮件”中,我们将深入探讨如何使用 JavaMail API 发送包含多种附件、HTML 内容和其他复杂元素的邮件。在提供的文件列表中,我们看到一系列名为 MailUtils 的类,...

    使用JavaMail实现发送邮件

    JavaMail是一个用于在Java应用程序中处理邮件的API,它提供了一种标准的方式来发送和接收电子邮件。本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`...

    JavaMail收发Gmail邮件

    在使用JavaMail进行Gmail邮件的收发时,需要注意几个关键点: 1. **SSL加密**: 为了确保数据的安全传输,通常会使用SSL加密技术。 2. **Gmail的SMTP和POP3设置**: - SMTP服务器地址: smtp.gmail.com - SMTP端口: ...

    基于JaVaMail的Web邮件客户端的设计与实现

    通过一个具体的案例来深入理解JavaMail在Web邮件客户端中的应用。例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的...

    怎么用JavaMail收取邮件

    总结来说,JavaMail 为开发者提供了一个强大且灵活的工具,用于在 Java 应用中处理邮件的发送和接收。通过理解 POP3 和 IMAP 协议,以及如何使用 JavaMail API,开发者可以轻松地构建出高效、安全的邮件应用。无论是...

    JavaMail javamail java电子邮件客户端

    以下是一个简单的使用JavaMail发送邮件的示例代码片段: ```java Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail....

    javamail 回执邮件资料

    本资料包主要涵盖了使用 JavaMail 实现回执邮件以及相关邮件操作的知识点。 首先,发送带有回执请求的邮件是通过设置邮件头实现的。在创建 `MimeMessage` 对象时,可以调用 `setHeader()` 方法添加特定的头字段。...

    JavaMail(JAVA邮件服务器)API详解 chm.rar

    总之,"JavaMail(JAVA邮件服务器)API详解"这个资源将提供一个全面的指南,帮助Java开发者充分利用JavaMail API来构建高效、可靠的邮件系统,无论是简单的日志报告还是复杂的邮件应用,都能得心应手。通过深入学习和...

    JavaMail发送邮件的例子

    JavaMail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能来处理复杂的邮件操作。在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的...

    JavaMail发送邮件(文本、html、附件)

    JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、...

    使用javaMail发送邮件

    在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送功能。 首先,我们需要引入JavaMail所需的依赖库。在提供的文件列表中,我们看到有以下jar文件: 1. mail.jar:这是JavaMail的核心库,包含了...

    用javaMail发送邮件

    3. **创建邮件消息**:使用`Message`类实例化一个邮件对象,并设置必要的属性,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress(...

    javaMail实现发送邮件的demo

    本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml &lt;groupId&gt;com.sun.mail&lt;/groupId&gt; &lt;artifactId&gt;...

    javaMail实现单发/群发邮件操作

    在这个项目中,我们将会探讨如何使用 JavaMail 实现单发和群发邮件的操作。 首先,为了使用 JavaMail 发送邮件,我们需要引入相关的依赖。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...

Global site tag (gtag.js) - Google Analytics