最近项目用到java自动发送邮件的功能,在网上找到一段完整的代码;经测试可以正常发送邮件。感谢各位分享了。下面记下代码:
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MainClass {
private String host = ""; //smtp服务器
private String from = ""; //发件人地址
private String to = ""; //收件人地址
private String affix = ""; //附件地址
private String affixName = ""; //附件名称
private String user = ""; //用户名
private String pwd = ""; //密码
private String subject = ""; //邮件标题
public void setAddress(String from,String to,String subject){
this.from = from;
this.to = to;
this.subject = subject;
}
public void setAffix(String affix,String affixName){
this.affix = affix;
this.affixName = affixName;
}
public void send(String host,String user,String pwd) {
this.host = host;
this.user = user;
this.pwd = pwd;
Properties props = new Properties();
//设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
props.put("mail.smtp.host", host);
//需要经过授权,也就是有户名和密码的校验,这样才能通过验证
props.put("mail.smtp.auth", "true");
//用刚刚设置好的props对象构建一个session
Session session = Session.getDefaultInstance(props);
//有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使
//用(你可以在控制台(console)上看到发送邮件的过程)
session.setDebug(true);
//用session为参数定义消息对象
MimeMessage message = new MimeMessage(session);
try{
//加载发件人地址
message.setFrom(new InternetAddress(from));
//加载收件人地址
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
//加载标题
message.setSubject(subject);
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart();
//设置邮件的文本内容
BodyPart contentPart = new MimeBodyPart();
contentPart.setText("第二种方法···");
multipart.addBodyPart(contentPart);
//添加附件
BodyPart messageBodyPart= new MimeBodyPart();
DataSource source = new FileDataSource(affix);
//添加附件的内容
messageBodyPart.setDataHandler(new DataHandler(source));
//添加附件的标题
//这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
messageBodyPart.setFileName("=?GBK?B?"+enc.encode(affixName.getBytes())+"?=");
multipart.addBodyPart(messageBodyPart);
//将multipart对象放到message中
message.setContent(multipart);
//保存邮件
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
//连接服务器的邮箱
transport.connect(host, user, pwd);
//把邮件发送出去
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
MainClass cn = new MainClass();
//设置发件人地址、收件人地址和邮件标题
cn.setAddress("发件人地址","收件人地址","邮件标题");
//设置要发送附件的位置和标题
cn.setAffix("D:\\1.jpg","1.jpg");
//设置smtp服务器以及邮箱的帐号和密码
cn.send("smtp.163.com","邮箱的帐号","密码");
}
}
分享到:
相关推荐
java 编写的自动发送邮件代码 以后就不用在登入邮箱发送邮件了 还可以镶嵌在网页里 实现用户注册时系统自动发送邮件
【Java自动发邮件详解】 在Java中实现自动发送邮件的功能是一项常见的任务,尤其对于系统集成、通知服务等应用场景。这个示例中展示了一个基于Servlet的简单邮件发送系统,通过配置`web.xml`文件来初始化参数,并...
java 自动发送邮件的代码片段 注释全面 拷贝过来就可以了 我的功能已实现后才上传
Java 自动发送邮件是开发过程中常见的一项任务,尤其在系统通知、数据报告或者客户服务中扮演着重要角色。这里我们讨论的是一段Java代码,它能够实现邮件的自动发送,并且包含了一个必要的jar文件:`...
本文将详细讲解如何使用Java实现邮件自动发送,并基于提供的两个源码文件`mailFor163`和`mailForSina`进行解析。 首先,Java Mail API是Java发送邮件的核心库,它提供了丰富的接口和类来处理邮件协议,如SMTP(简单...
在Java后台开发中,自动发送邮件是一项常见的任务,特别是在系统通知、用户验证或者定期报告等场景下。本教程将详细讲解如何使用Java实现这一功能,主要涉及的技术点包括SMTP协议、JavaMail API以及如何配置和运行...
用于java代码的自动发信功能(导入相应的包)
总结起来,"JAVA自动发送网易邮件"涉及到的关键知识点包括: 1. JavaMail API的使用 2. SMTP协议的理解 3. 自定义认证器的创建 4. 邮件消息的构建与发送 以上就是Java通过网易163邮箱服务器自动发送邮件的完整流程...
Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...
在IT行业中,使用编程语言发送电子邮件是一项常见的任务,特别是在自动化脚本或系统集成中。Java作为广泛应用的编程语言,提供了多种方法来发送邮件,包括通过Outlook和Notes客户端。在这个场景下,我们将深入探讨...
Java邮件发送是一个常见的任务,尤其在自动化通知、用户注册验证或客户服务中。在这个主题中,我们将深入探讨如何使用Java来发送电子邮件,以及涉及到的关键技术点。 首先,Java中用于发送邮件的主要API是JavaMail ...
Java发送邮件是一个常见的任务,尤其在自动化通知、订阅服务或者数据传输中。在这个"java发送邮件完整程序"中,我们将会探讨如何使用Java语言来构建一个邮件发送功能,包括所需的库、步骤以及关键代码片段。 首先,...
Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...
利用Java来实现自动定时发送邮件的功能不仅提高了系统的自动化程度,同时也增强了用户体验。 #### 二、关键概念和技术要点 ##### 1. JavaMail API JavaMail API是Java平台提供的邮件处理API,它允许Java应用通过...
Java发送邮件是软件开发中常见的需求,特别是在自动化通知、服务端消息传递等方面。Java Mail API 是Java平台用于处理邮件收发的核心库。本教程将详细讲解如何使用Java实现发送邮件,包括发送图片和附件。 首先,你...
Java SMTP 发送邮件是Java开发中常见的功能,用于在应用程序中实现邮件的自动化发送。SMTP(Simple Mail Transfer Protocol)是一种互联网标准,用于从一个邮件服务器向另一个邮件服务器发送电子邮件。以下将详细...
在Java编程语言中,发送邮件是一项常见的任务,尤其在自动化通知、系统日志报告或客户服务交互等场景下。本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的...
本教程将深入讲解如何利用Java实现邮件的发送,并包含身份验证的过程,这对于自动化任务、通知系统或者任何需要通过电子邮件进行通信的应用来说是至关重要的。 首先,我们来了解计算机网络中的Socket编程。Socket是...