这是我很早之前写的一个工具类,最近在整理自己所学的东西,无意中找到了,就拿出来与大家分享,代码如下:

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向邮箱发送邮件的更多相关文章

  1. java实现邮箱发送邮件功能

    邮箱验证是一个很常见的功能了,基本上每个网站都会用的到,java也有专门的jar来处理邮件发送等服务,这里只是简单的实现一下发送邮件的功能,具体jar包就不再提供了,我会把所有需要引用的包都贴出来,方 ...

  2. java实现邮箱发送邮件

    第一步:封装发件人账号密码 import javax.mail.Authenticator;import javax.mail.PasswordAuthentication; /** * 发件人账号密 ...

  3. Java实现网易企业邮箱发送邮件

    最近项目需要用网易企业邮箱发送邮件,特意来将实现过程记录一下: maven导入jar包 <!-- javax.mai 核心包 --> <dependency> <grou ...

  4. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  5. 使用 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 ...

  6. Java实现邮箱验证

    Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...

  7. 基于JavaMail向邮箱发送邮件

    参考:http://blog.csdn.net/ghsau/article/details/17839983 http://blog.csdn.net/never_cxb/article/detail ...

  8. Java注册帐号邮箱激活验证实现

    Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.h ...

  9. 通过163smtp服务器向各大邮箱发送邮件(SOCKET编程)

    package server; import java.io.*; import java.net.*; import java.sql.Time; import java.util.Scanner; ...

随机推荐

  1. 路飞学城Python-Day48

    49-清除浮动1:给父盒子设置高度 给父盒子设置高度,这种方式不灵活,公司的产品修改的时候,要求父盒子高度变大, 不可能去手动修改 尽量不要给父元素去修改高度,不建议这样的方式 <!DOCTYP ...

  2. Python——微信数据分析

    数据可视化:http://echarts.baidu.com/echarts2/doc/example.html import refrom wxpy import *import jiebaimpo ...

  3. (2016北京集训十三)【xsy1531】魔法游戏 - Nim游戏

    题解: 好题!我的结论很接近正解了... 把一个数化成二进制,每次至少要拿走一位,最多全拿走,不能不拿.那么这就是一个经典的Nim问题了,子树异或起来就是根节点的答案,随便递推一下就行了. 代码: # ...

  4. BZOJ 4044 Virus synthesis (回文自动机+dp)

    题目大意: 你可以在一个串的开头或者末尾加入一个字符,或者把当前整个串$reverse$,然后接在前面或者后面,求达到目标串需要的最少操作次数 对目标串建出$PAM$ 定义$dp[x]$表示当前在回文 ...

  5. layui select change

    <select lay-filter="test"></select> layui.use([ 'form'], function() { var form ...

  6. vue如何每次打开子组件弹窗都进行初始化

    :visible.sync 与 v-if同时使用即可.

  7. Python socket通信之FTP

    Python中利用socket进行server端和client端通信是网络编程的基础,是最简单的传输范例. (懂网络的请自动跳过这一部分) 首先,要想通信,必须建立连接,建立连接的过程,需要clien ...

  8. vue懒加载实现

  9. Python3 定时访问网页

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50358695 如果我有一组网站,想要定 ...

  10. 安卓更新Toast流程图

    今天照着书写了个程序为了理解更深刻特意画了一个流程图分享给大家 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ2p1bnlhbg==/font/5 ...