步骤:
1.发送邮件类
package test.mail;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
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;
import sun.misc.BASE64Encoder;
public class MailSender{
public void sendMail() throws Exception{
Properties props = new Properties();
props.put("mail.smtp.host", getHost());
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(getFromAddr()));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(text);//这里就是要发出去的邮件内容啦!
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null){//发送附件
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(attachPath);
attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(attachName.getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host,getUsername(),getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private String host = null;
private String fromAddr = null;
private String toAddr = null;
private String username = null;
private String password = null;
private String title = null;
private String attachPath = null;//附件路径
private String attachName = null;//附件名
private String text = null;
public String getHost(){
return host;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public void setHost(String host){
this.host = host;
}
public String getFromAddr(){
return fromAddr;
}
public void setFromAddr(String fromAddr){
this.fromAddr = fromAddr;
}
public String getToAddr(){
return toAddr;
}
public void setToAddr(String toAddr){
this.toAddr = toAddr;
}
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword(){
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
public String getAttachPath(){
return attachPath;
}
public void setAttachPath(String attachPath){
this.attachPath = attachPath;
}
public String getAttachName(){
return attachName;
}
public void setAttachName(String attachName){
this.attachName = attachName;
}
}
2.测试类
package test.mail;
public class MailTest {
public static void main(String[] args){
MailSender sender = new MailSender();
sender.setHost("smtp.qq.com");
sender.setFromAddr("aaa@qq.com");//发件人的邮箱地址
sender.setToAddr("bbb@sina.com");//收件人的邮箱地址
sender.setUsername("aaa");//邮箱用户名
sender.setPassword("cccc");//邮箱密码
sender.setTitle("The first mail");//邮件的标题
sender.setText("这是我用Java程序发送的第1封邮件!呵呵!!!");//邮件正文
sender.setAttachName("附件");//附件名称
sender.setAttachPath("D:/exp.log");//附件路径
try {
sender.sendMail();
System.out.println("success");
} catch (Exception e){
e.printStackTrace();
}
}
}
3.jar包支持
需要mail.jar和activation.jar,需要注意的是邮箱服务器地址smtp.qq.com,不同的发件人邮箱地址会不同!
分享到:
相关推荐
这个"javamail使用demo示例"是JavaMail官方提供的一个实例集合,旨在帮助开发者更好地理解和应用JavaMail库。下面我们将深入探讨JavaMail的核心概念、主要功能以及如何使用这些示例代码。 一、JavaMail核心概念 1....
JavaMail 的使用通常需要依赖一组特定的 JAR 包,这些包包含了实现 SMTP、POP3、IMAP 等邮件协议的类和方法。 在描述中提到的 "javamail-1.4.4" 可能是指 JavaMail API 的一个版本号,这通常是一个包含所有必要组件...
总的来说,这个JavaMail使用实例及所需jar包的教程是学习Java邮件编程的宝贵资源。通过实践这些例子,初学者能够快速掌握JavaMail API的基本用法,为进一步的电子邮件开发打下坚实基础。同时,对于那些已经在项目中...
### JavaEE5学习笔记04-JavaMail使用总结 在JavaEE5的学习过程中,JavaMail是一个非常重要的组件,它提供了发送、接收电子邮件的功能,并且能够与各种不同的邮件服务器进行交互。下面将根据提供的内容,详细解析...
对于本文提到的“JavaMail使用总结---3”,可能涵盖了更高级或特定的JavaMail用法,例如使用SSL/TLS加密通信、处理邮件附件、读取邮件、解析邮件头等。由于没有具体的博客内容,这部分无法提供详细讲解,但这些都是...
对于邮件接收,JavaMail 使用 Store 和 Folder 类来连接邮件服务器并获取邮件。你可以选择 POP3 或 IMAP 协议,根据用户的需求,可以设置为只读或读写模式。Folder 对象代表邮件文件夹,如“收件箱”、“已发送”等...
使用Apache Commons Email,你可以避免直接与JavaMail API交互时的复杂性,而是通过简单的API调用来实现邮件发送。 要使用这两个jar包进行邮件发送,首先需要将它们添加到项目的类路径中。在传统的Java项目中,这...
在JavaMail的使用过程中,通常需要导入两个重要的JAR文件: 1. `mail.jar`: 这是JavaMail的核心库,包含了`javax.mail`和`javax.mail.internet`包,提供了所有与邮件交互的类和接口。例如,`Session`类用于配置邮件...
在提供的压缩包文件"Spring08JavaMail"中,可能包含了使用Spring集成JavaMail的示例代码,你可以参考学习如何在Spring应用中配置和使用JavaMailSender。 总结起来,JavaMail是一个功能丰富的库,用于在Java应用程序...
使用`javamail-1.6`时,开发者需要将其添加到项目依赖中,然后通过创建邮件会话,构建邮件消息对象,设置发件人、收件人、主题和正文,最后通过Transport类发送邮件。对于接收邮件,可以通过Folder和Message对象进行...
2. **SMTP 协议**:JavaMail 使用 Simple Mail Transfer Protocol (SMTP) 发送邮件。通过 SMTPServer 示例,我们可以了解到如何配置 SMTP 服务器参数,如主机名、端口、用户名和密码。 3. **POP3 和 IMAP 协议**:...
这个实例包含了使用JavaMail进行邮件操作所需的全部资源,包括配置和服务的设置,以及具体的代码示例。 首先,JavaMail的核心库是`javax.mail`和`com.sun.mail`,它们提供了邮件协议(如SMTP、POP3、IMAP)的实现。...
- JavaMail 使用SMTP(Simple Mail Transfer Protocol)协议发送邮件。SMTP服务器通常是邮件系统的出站服务器,负责将邮件传递到目的地。 4. **POP3/IMAP协议**: - 对于接收邮件,JavaMail支持POP3(Post Office...
3. **MIME (Multipurpose Internet Mail Extensions)**:JavaMail 使用 MIME 标准来处理邮件中的多种类型的数据,如文本、图像、附件等。MIME 支持创建复杂的多部分消息,包括嵌入的图片和其他资源。 4. **Session ...
在Servlet环境下使用 JavaMail,可以构建基于Web的邮件服务,例如用户通过网页发送邮件。下面我们将深入探讨如何使用JavaMail与Servlet来实现这一功能。 首先,你需要在项目中添加JavaMail的相关依赖。如果你使用的...
5. **provider.properties**:这是一个配置文件,列出了JavaMail使用的服务提供者。你可以在这里指定邮件服务器的参数,如主机名、端口、用户名和密码。 为了使用JavaMail,你需要将这些依赖添加到你的项目构建路径...
在提供的压缩包文件中,可能包含了一个简单的JavaMail使用示例。通过分析和学习这个例子,你可以更好地理解如何在实际项目中集成和使用JavaMail发送邮件。记得检查代码中的异常处理和错误日志,这对于调试和解决问题...
5. **事件驱动模型**:JavaMail 使用JavaBeans Activation Framework (JAF) 实现事件驱动模型,可以监听邮件状态的变化,例如新邮件到达、邮件已读等。 6. **国际化**:JavaMail 支持多种语言,便于创建多语言的...