`
javaeeboy
  • 浏览: 12118 次
  • 性别: Icon_minigender_1
  • 来自: 汕头
社区版块
存档分类
最新评论

使用javaMail组件来发送邮件

阅读更多
为大家介绍javaMail组件的使用,首先是发送普通的邮件
package javamail;

import java.io.IOException;

import java.util.*;
import javax.mail.internet.*;
import javax.mail.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class JavaMailServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		
		InternetAddress[] address = null;
		request.setCharacterEncoding("GBK");
		//使用qq服务器
		String mailserver = "服务器的名称";
		String From = request.getParameter("From");
		String to = request.getParameter("To");
		String Subject = request.getParameter("Subject");
		String MessageText = request.getParameter("Message");
		
		boolean sessionDebug = false;
		
		try{
			//设定Mail的服务器和传输协议
			Properties props = System.getProperties();
			props.put("mail.host",mailserver);
			props.put("mail.transport.protocol","smtp");
			props.put("mail.smtp.auth","true");//安全协议,若你不是使用免费服务器可不用
			
			
			/*
			 * 产生新的session服务
			 * 安全协议用内部类,参数表示QQ账号和密码
			 * 在普遍的免费服务器中大多数都要进行安全验证
			 */
			javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,new Authenticator() {
				public PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication("账号","密码");
				}
			});
			
			mailSession.setDebug(sessionDebug);
			
			Message msg = new MimeMessage(mailSession);
			
			//设定传送邮件的发信人
			msg.setFrom(new InternetAddress(From));
			
			//设定传送邮件至收信人的信息
			address = InternetAddress.parse(to,false);
			msg.setRecipients(Message.RecipientType.TO,address);
			
			//设定信中的主题
			msg.setSubject(Subject);
			
			// 设定传送信的MIME Type
			msg.setText(MessageText);
			
			Transport.send(msg);
			
			System.out.println("邮件已顺利发送");
			
		}catch(Exception e){
			e.printStackTrace();
		}	
	}
}




接下来的是带有附件的邮件,在这里我将使用的是oreilly组件进行上传
public class JavaMailServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("gb2312");
		InternetAddress[] address = null;
		
		MultipartRequest multi = new MultipartRequest(request,".",5*1024*1024,"gb2312");
		
		String mailserver = "服务器";
		String From = multi.getParameter("From");
		String to = multi.getParameter("To");
		String Subject = multi.getParameter("Subject");
		String type = multi.getParameter("Type");
		String messageText = multi.getParameter("Message");
		String FileName = multi.getFilesystemName("FileName");
		
		boolean sessionDebug = false;
	
		try{
			Properties props = System.getProperties();
			
			props.put("mail.host",mailserver);
			props.put("mail.transport.protocol","smtp");
			props.put("mail.smtp.auth","true");
			
			
			//产生新的session服务
			javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,new Authenticator() {
				public PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication("账号","密码");
				}
			});	
			mailSession.setDebug(sessionDebug);
			
			Message msg = new MimeMessage(mailSession);
			
			//设定传送邮件的发信人
			msg.setFrom(new InternetAddress(From));
			
			//设定传送邮件至收信人的信息
			address = InternetAddress.parse(to,false);
			msg.setRecipients(Message.RecipientType.TO,address);
			
			//设定信中的主题
			msg.setSubject(Subject);
			
			//设定送信的时间
			msg.setSentDate(new Date());
			
			if(FileName!=null){
				File file = new File(FileName);
				//如果有附件,就将邮件内容部分存起来
				MimeBodyPart mbp1 = new MimeBodyPart();
				//设定邮件内容的类型为text/plain或text/html
				mbp1.setContent(messageText,type+";charset=gb2312");
				
				//接下来是对附件进行处理
				MimeBodyPart mbp2 = new MimeBodyPart();
				FileDataSource fds = new FileDataSource(FileName);
				mbp2.setDataHandler(new DataHandler(fds));
				mbp2.setFileName(MimeUtility.encodeText(fds.getName(),"gb2312","B"));
				
				//最后再将两者集成起来,当做一份邮件送出
				Multipart mp = new MimeMultipart();
				mp.addBodyPart(mbp1);
				mp.addBodyPart(mbp2);
				msg.setContent(mp);
			}else{
				//若没有附件,当做一份邮件送出
				msg.setContent(messageText,type+";charset=gb2312");
			}
			Transport.send(msg);
			System.out.println("邮件已顺利发送");
		}catch(Exception e){
			e.printStackTrace();
		}	
	}
}




以上是使用javaMail组件来发送,如果大家有更好的方法希望留言哦!也可以把意见发到我的邮箱上 javaeeboy@qq.com !本人在这里求一种通过socket的方法来发送邮件的!谢谢
分享到:
评论

相关推荐

    JavaMail组件简单应用

    对于初学者来说,理解和掌握JavaMail组件的基本应用是至关重要的,因为这将帮助他们构建出能够处理邮件交互的系统。本文将深入探讨JavaMail的核心概念、主要组件以及如何在实际项目中进行简单应用。 1. **JavaMail ...

    Java Web应用开发 56 课堂案例-应用JavaMail组件发送邮件.docx

    ### Java Web应用开发 56 课堂案例-应用JavaMail组件发送邮件 #### 案例背景与目标 本案例旨在通过实际操作帮助学生掌握如何利用JavaMail组件在Java Web应用中实现邮件发送功能。JavaMail是Java平台的一个扩展,...

    使用JavaMail实现发送邮件

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

    JAVA Web程序设计-3期(KC006) 13-1-2应用JavaMail组件发送邮件的操作步骤.doc

    通过上述步骤,我们已经成功实现了使用JavaMail组件发送邮件的功能。这不仅加深了对JavaMail组件的理解,还为我们实际开发中集成邮件发送功能提供了参考模板。需要注意的是,在实际项目中可能还需要考虑更多的异常...

    JavaMail发送邮件的例子

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

    javamail"java发送邮件所需要的包

    标题中的“javamail”指的就是这个重要的库,它包含了处理邮件通信所需的所有必要组件。 JavaMail API 提供了丰富的类和接口,用于实现SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议...

    Android 使用javamail发送邮件

    总的来说,"Android使用javamail发送邮件"这个主题涵盖了Android平台上利用JavaMail API实现邮件发送的基本流程和注意事项,包括设置SMTP服务器、构建邮件消息、处理附件以及可能的安全性和用户体验优化。...

    javaMail 发邮件

    在JavaMail中发送邮件主要涉及以下组件: 1. **Properties对象**:这个对象用来存储邮件服务器的相关配置信息,如SMTP服务器地址、端口号、用户名和密码。例如,`props.put("mail.smtp.host", "smtp.example.com");...

    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 使用 `javax.mail.Transport` 类来发送邮件,通过指定SMTP服务器的地址和端口号,设置用户名和密码进行身份验证,然后创建 `Message` 对象并调用 `Transport.send(Message)` 方法来发送邮件。 2. IMAP 和 ...

    javamail-1.4.4-邮件发送组件

    总的来说,JavaMail-1.4.4 是一个强大且全面的邮件处理库,它的使用可以极大地简化邮件相关的编程工作。这个版本可能已经相对老旧,但其基础功能仍然强大,对于理解邮件处理机制和实现邮件功能仍然是一个优秀的学习...

    javamail(带界面的javamail)

    然后,你可以使用 Transport 类的 send 方法来发送 Message 对象,该对象包含了邮件的所有内容,如发件人、收件人、主题和正文。如果邮件有附件,可以通过 MimeMessage 类和 MimeBodyPart 类来添加。 对于邮件接收...

    使用JavaMail API 发送邮件

    在本文中,我们将深入探讨如何使用JavaMail API在MyEclipse开发环境中创建一个能够发送邮件的项目。 首先,为了使用JavaMail API,我们需要在项目中引入相关的依赖库。通常,这包括`javax.mail`和`javax.mail-api`...

    android使用javamail发送邮件jar包

    在Android平台上,发送电子邮件通常需要使用JavaMail API。JavaMail是一个开源库,它提供了一组API,使得在Java环境中发送和接收电子邮件变得简单。在Android项目中,由于原生的Android SDK并不直接支持JavaMail,...

    javamail-1_3_3_01邮件发送组件

    这个“javamail-1_3_3_01邮件发送组件”指的是 JavaMail 的一个特定版本,即1.3.3_01。这个版本可能包含了对之前版本的改进、修复了某些已知问题,或者增加了新的功能。 在JavaMail中,发送邮件主要依赖`javax.mail...

    javaMail发送邮件依赖的jar包源码整理

    2. **Provider**: JavaMail 使用服务提供者机制,允许不同的邮件系统(如 Gmail、Yahoo、Outlook)通过实现相应的接口来与 JavaMail API 连接。每个提供商都注册在 `META-INF/services` 文件中。 3. **Protocol ...

    JavaMail 发送验证邮件

    JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心组件,它们可以结合JavaMail一起实现邮件发送功能。 首先,我们需要理解JSP和Servlet的角色。JSP主要用于展示动态内容,而Servlet则主要处理HTTP请求和...

    javaMail发送和接收邮件

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中发送和接收电子邮件。它提供了丰富的 API,使得开发者可以方便地与各种邮件服务器进行交互,支持 SMTP、POP3 和 IMAP 协议。本篇文章将深入探讨 JavaMail 的...

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

    使用JavaMail API的内容会涵盖实际的代码示例,比如如何创建和发送简单的文本邮件、带有附件的邮件,以及如何接收和读取邮件。这部分还会涉及到认证机制,如如何设置用户名和密码进行SMTP身份验证,以及SSL/TLS安全...

Global site tag (gtag.js) - Google Analytics