使用java向邮箱发送邮件
这是我很早之前写的一个工具类,最近在整理自己所学的东西,无意中找到了,就拿出来与大家分享,代码如下:
- import java.io.ByteArrayOutputStream;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.Authenticator;
- import javax.mail.Message;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- import javax.mail.BodyPart;
- import javax.mail.Multipart;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMultipart;
- import org.apache.struts.util.MessageResources;
- import com.qq.connect.javabeans.tenpay.Address;
- //import com.sun.istack.internal.ByteArrayDataSource;
- public class SendMails {
- public int sendMail(String emailTitle, String content, String emailTo,MessageResources message) throws Exception {
- System.out.println(smtpServer1);
- Properties props = new Properties();
- props.put("mail.smtp.auth", "true");
- props.put( "mail.transport.protocol", "smpt");
- props.put("mail.smtp.host", smtpServer1);
- // 获得邮件会话对象
- Session session = Session.getInstance(props,new SmtpAuthenticator1(fromMailAddress1, password1));
- /** *************************************************** */
- // 创建MIME邮件对象
- MimeMessage mimeMessage = new MimeMessage(session);
- mimeMessage.setFrom(new InternetAddress(fromMailAddress1));// 发件人
- mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));// 收件人
- mimeMessage.setSubject(emailTitle);
- mimeMessage.setSentDate(new Date());// 发送日期
- Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件
- /** *************************************************** */
- BodyPart bodyPart = new MimeBodyPart();// 正文
- StringBuffer content = new StringBuffer();
- bodyPart.setDataHandler(new DataHandler(content.toString(),"text/html;charset=GBK"));// 网页格式
- /** *************************************************** */
- // BodyPart attachBodyPart = new MimeBodyPart();// 普通附件
- // FileDataSource fds = new FileDataSource("c:/boot.ini");
- // attachBodyPart.setDataHandler(new DataHandler(fds));
- // attachBodyPart.setFileName("=?GBK?B?"+ new sun.misc.BASE64Encoder().encode(fds.getName().getBytes()) + "?=");// 解决附件名中文乱码
- // mp.addBodyPart(attachBodyPart);
- /** *************************************************** */
- // MimeBodyPart imgBodyPart = new MimeBodyPart(); // 附件图标
- // byte[] bytes = readFile("E:/webcms/webcms/WebContent/images/bjx.jpg");
- // ByteArrayDataSource fileds = new ByteArrayDataSource(bytes,"application/octet-stream");
- // imgBodyPart.setDataHandler(new DataHandler(fileds));
- // imgBodyPart.setFileName("button.gif");
- // imgBodyPart.setHeader("Content-ID", "<IMG1></IMG1>");// 在html中使用该图片方法src="cid:IMG1"
- // mp.addBodyPart(imgBodyPart);
- /** *************************************************** */
- mp.addBodyPart(bodyPart);
- mimeMessage.setContent(mp);//设置邮件内容对象
- try {
- Transport.send(mimeMessage);//发送邮件
- // Transport transport=session.getTransport();
- // transport.send(mimeMessage);
- } catch (Exception e) {
- // e.printStackTrace();
- if(e.getMessage().contains("550 User not found")){
- return 2;
- }else{
- return 3;
- }
- }
- //system.out.println("SendEmail OK!!");
- return 0;
- }
- public void setUsername1(String username1) {
- this.username1 = username1;
- }
- public void setPassword1(String password1) {
- this.password1 = password1;
- }
- public void setSmtpServer1(String smtpServer1) {
- this.smtpServer1 = smtpServer1;
- }
- public void setFromMailAddress1(String fromMailAddress1) {
- this.fromMailAddress1 = fromMailAddress1;
- }
- public static byte[] readFile(String file) {
- FileInputStream fis = null;
- ByteArrayOutputStream bos = null;
- try {
- fis = new FileInputStream(file);
- bos = new ByteArrayOutputStream();
- int bytesRead;
- byte buffer[] = new byte[1024 * 1024];
- while ((bytesRead = fis.read(buffer)) != -1) {
- bos.write(buffer, 0, bytesRead);
- Arrays.fill(buffer, (byte) 0);
- }
- } catch (IOException e1) {
- e1.printStackTrace();
- } finally {
- try {
- if (bos != null)
- bos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return bos.toByteArray();
- }
- }
- /**
- * Smtp认证
- */
- class SmtpAuthenticator1 extends Authenticator {
- String username = null;
- String password = null;
- // SMTP身份验证
- public SmtpAuthenticator1(String username, String password) {
- this.username = username;
- this.password = password;
- System.out.println(username+"::::::"+password);
- }
- public PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(this.username, this.password);
- }
- }
使用java向邮箱发送邮件的更多相关文章
- java实现邮箱发送邮件功能
邮箱验证是一个很常见的功能了,基本上每个网站都会用的到,java也有专门的jar来处理邮件发送等服务,这里只是简单的实现一下发送邮件的功能,具体jar包就不再提供了,我会把所有需要引用的包都贴出来,方 ...
- java实现邮箱发送邮件
第一步:封装发件人账号密码 import javax.mail.Authenticator;import javax.mail.PasswordAuthentication; /** * 发件人账号密 ...
- Java实现网易企业邮箱发送邮件
最近项目需要用网易企业邮箱发送邮件,特意来将实现过程记录一下: maven导入jar包 <!-- javax.mai 核心包 --> <dependency> <grou ...
- 基于java mail实现简单的QQ邮箱发送邮件
刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...
- 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response
使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...
- Java实现邮箱验证
Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...
- 基于JavaMail向邮箱发送邮件
参考:http://blog.csdn.net/ghsau/article/details/17839983 http://blog.csdn.net/never_cxb/article/detail ...
- Java注册帐号邮箱激活验证实现
Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.h ...
- 通过163smtp服务器向各大邮箱发送邮件(SOCKET编程)
package server; import java.io.*; import java.net.*; import java.sql.Time; import java.util.Scanner; ...
随机推荐
- mysql安装出现 conflicts with mysql*的解决办法
rpm -ivh Percona-Server-client-56-5.6.16-rel64.0.el6.x86_64.rpm --nodeps --force error: Failed depen ...
- stm8s103调试注意点
外设时钟的配置,有次ADC就是不工作,查问题查了很久,总是怀疑ADC配置问题,然后利用库函数的例程,发现就可以,最后发现,外设时钟没开启,外设时钟如下配置 CLK->PCKENR1 = 0x00 ...
- hdu 5372 Segment Game 【 树状数组 】
给出一些操作, 0是将第i次增加的线段放在b位置,第i次放的线段的长度为i 1是将第b次增加操作放的线段删除 每次增加操作完之后,询问这条线段上面的完整的线段的条数 每次询问统计比这条线段左端点大的线 ...
- Win7下安装Flash低版本
我把HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersions中高于要装的版本的项目都删了,还是不行. 看了这个帖子后发现,原来64 ...
- java容器基础
总结一下学过的java容器知识. 一.java容器框架 由于之前学习的java容器类比较混乱,先简单的整理一下java集合框架. 首先,像这种图,网上到处都是,因为这个也算比较准确吧,我也懒得自己画了 ...
- node——由新闻列表跳转到新闻详情页
当我们在浏览新闻列表页面的时候,想要看感兴趣的新闻内容,需要到详情页面去查看内容. 在之前写好了新闻列表页面,现在需要做列表页面到详情页面的跳转,需要考虑一下问题 1.点击新闻列表某一项跳转到详情页面 ...
- Python笔记24-----迭代器、生成器的使用(如嵌套列表的展开、树的遍历等)
1.递归yield使用: 嵌套列表展开 def flatten(nested): if type(nested)==list: for sublist in nested: for i in flat ...
- Vue文件封装日历组件
封装就是要具有灵活性,样式自适应,调用的时候传入props就可以变成自己想要的样式. 效果展示网址:https://1963331542.github.io/ 源代码: <template> ...
- python_购物车程序
#需求1.启动程序后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4.可随时退出,退出时,打印已购买商品和余额 #先定义 ...
- ucore_lab0
一直想好好学习一下操作系统课程,去一个Mooc网站上找了一门操作系统的课程.这便是里面的配套实验. 实验指导:点这里 lab0主要是准备相关的操作环境.课程推荐使用qemu作为硬件模拟器,推荐运行环境 ...