进行JavaMail 收发邮件,必须导入2个Jar包 Mail.Jar Activation.Jar

//利用JavaMail收/发Gmail邮件(SSL)

//Gmail目前已经启用了POP3和SMTP服务

//与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,

//下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:

//1. 邮件收取

package zjk.javamail;

import java.io.UnsupportedEncodingException;

import java.security.*;

import java.util.Properties;

import javax.mail.*;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeUtility;

/**

* 用于收取Gmail邮件

*

* @author Winter Lau

*/

public class GmailFetch {

public static void main(String argv[]) throws Exception {

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

// Get a Properties object

Properties props = System.getProperties();

props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);

props.setProperty("mail.pop3.socketFactory.fallback", "false");

props.setProperty("mail.pop3.port", "995");

props.setProperty("mail.pop3.socketFactory.port", "995");

// 以下步骤跟一般的JavaMail操作相同

Session session = Session.getDefaultInstance(props, null);

// 请填写你的邮箱帐号和密码

URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,

"【你的邮箱账号,如:zhangjiankun880@gmail.com】", "【你的密码】");

Store store = session.getStore(urln);

Folder inbox = null;

try {

store.connect();

inbox = store.getFolder("INBOX");

inbox.open(Folder.READ_ONLY);

FetchProfile profile = new FetchProfile();

profile.add(FetchProfile.Item.ENVELOPE);

Message[] messages = inbox.getMessages();

inbox.fetch(messages, profile);

System.out.println("收件箱的邮件数:" + messages.length);

for (int i = 0; i < messages.length; i++) {

// 邮件发送者

String from = decodeText(messages[i].getFrom()[0].toString());

InternetAddress ia = new InternetAddress(from);

System.out.println("FROM:" + ia.getPersonal() + '('

+ ia.getAddress() + ')');

// 邮件标题

System.out.println("TITLE:" + messages[i].getSubject());

// 邮件大小

System.out.println("SIZE:" + messages[i].getSize());

// 邮件发送时间

System.out.println("DATE:" + messages[i].getSentDate());

}

} finally {

try {

inbox.close(false);

} catch (Exception e) {

}

try {

store.close();

} catch (Exception e) {

}

}

}

protected static String decodeText(String text)

throws UnsupportedEncodingException {

if (text == null)

return null;

if (text.startsWith("=?GB") || text.startsWith("=?gb"))

text = MimeUtility.decodeText(text);

else

text = new String(text.getBytes("ISO8859_1"));

return text;

}

}

//2. 发送邮件

package zjk.javamail;

import java.security.Security;

import java.util.Date;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

/**

* 使用Gmail发送邮件

*

* @author Winter Lau

*/

public class GmailSender {

public static void main(String[] args) throws AddressException,

MessagingException {

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

// Get a Properties object

Properties props = System.getProperties();

props.setProperty("mail.smtp.host", "smtp.gmail.com");

props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);

props.setProperty("mail.smtp.socketFactory.fallback", "false");

props.setProperty("mail.smtp.port", "465");

props.setProperty("mail.smtp.socketFactory.port", "465");

props.put("mail.smtp.auth", "true");

final String username = "【你的邮箱账号,如:zhangjiankun880@gmail.com】";

final String password = "【你的密码】";

Session session = Session.getDefaultInstance(props,

new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username, password);

}

});

// -- Create a new message --

Message msg = new MimeMessage(session);

// -- Set the FROM and TO fields --

msg.setFrom(new InternetAddress(username));

msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(

"【收件人的账号】", false));

msg.setSubject("Hello");

msg.setText("How are you");

msg.setSentDate(new Date());

Transport.send(msg);

System.out.println("Message sent.");

}

}

java gmail 发送邮件_使用JavaMail对Gmail进行邮件收发相关推荐

  1. java ssl发送邮件_通过SSL发送的Java邮件

    java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...

  2. 内网java发送邮件_基于JavaMail的Java邮件发送:简单邮件发送

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...

  3. java outlook 发送邮件_基于java使用JavaMail发送邮件

    一.邮件的相关概念 邮件协议.主要包括: SMTP协议:Simple Mail Transfer Protocol,即简单邮件传输协议,用于发送电子邮件 POP3协议:Post Office Prot ...

  4. java利用模板发送邮件_使用JavaMail实现发送模板邮件以及保存到发件箱

    需要用到的jar包 1.freemarker-2.3.19.jar 2.javax.mail.jar 3.javax.activation.jar 本次测试邮箱是腾讯企业邮箱,其他未经测试. 做这个功 ...

  5. java 屏蔽邮箱_使用javamail发送邮件的时候如何阻止附件内容输出到控制台

    我在使用JavaMail发送带附件的邮件时候,每次到了Transport.sendMessage()这一步,控制台就会输出附件内容,请问如何设置可以取消输出呢? public void sendFil ...

  6. java 新浪 发送邮件_使用javamail新浪郵箱發送遇到的問題(已解決)

    打印的日志為:250 ok queue id 361458395651 同一段代碼163郵箱發送成功了,新浪貌似是發送成功了,其實還是發送失敗的郵件,原代碼如下 Properties props = ...

  7. java 延时发送邮件_基于SpringBoot实现定时发送邮件过程解析

    前提: 1.springboot项目 2.引入maven 依赖 org.springframework.boot spring-boot-starter-mail 以下代码中涉及到的maven依赖有日 ...

  8. java服务器发送邮件_服务器通过模板发送邮件java代码

    //文件读取类 public class TemplateFileRead { private String content= null; public TemplateFileRead() { } ...

  9. java越权发送邮件_水平越权的常见解决方法

    场景模拟 场景一 只允许资源的所有者才能对资源进行操作(CRUD).比如,jack在某博客平台写了一篇私密文章,只有自己可以对这篇文章进行增删查改的操作: 场景二 允许指定个人或者角色也能对资源进行操 ...

最新文章

  1. 区块链热度背后的资本市场
  2. 如何做到让屏幕中的人不翼而飞?这个JavaScript项目告诉你该怎么做!
  3. 收购创业公司如何评估价值
  4. 防URL参数攻击方案
  5. python程序流程控制_python流程控制
  6. cefsharp 网页打印不好用_2019年成人高考打印准考证常见问题解答
  7. 洛谷 [P1352] 没有上司的舞会
  8. ASP.NET Core 3.0 gRPC 身份认证和授权
  9. Mybatis结果集映射
  10. qemu+linux+x86+64,qemu以64位跟32位的方式跑busybox
  11. Impatient JavaScript 中文版校对活动期待大家的参与
  12. onvif开发踩坑【二】鉴权失败
  13. 2021-2025年中国DNA基因芯片行业市场供需与战略研究报告
  14. 老男孩教育 | 从小白进军IT,他仅用了四个月的时间!
  15. Ubuntu安装 apache2 mysql php5 freeradius
  16. 关于微信公众号开发中扫码关注和关注之后继续扫码的不同点
  17. 转:高手速成android开源项目【View篇】 .
  18. 药店微信小程序的功能
  19. 云计算1+X平台运维与开发认证(初级)操作题详解
  20. SvnAnt authentication cancelled 的解决

热门文章

  1. 推荐一些景观美学的书哟~
  2. EasyRecovery15电脑装机下载必备的数据恢复软件
  3. PMP英文报名时,如何描述自己的项目经验?
  4. 面试容易紧张,有哪些小技巧可以缓解紧张呢?
  5. PhotoshopCS6
  6. 互联网产品分析-基础
  7. 作业_HTML标记基本应用与网页设计
  8. 教师计算机返岗实践方案,国培计划返岗实践方案(word版)
  9. 敏捷(Agile)是什么?--参加优普丰CSM认证培训有感
  10. 大智慧2逐笔数据提取工具