首先我们需要两个jar包,点击下面即可下载这两个包:

我们这里采用QQ邮箱发送邮件为例,代码如下:

package ddd;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

import javax.mail.Authenticator;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.Multipart;

import javax.mail.PasswordAuthentication;

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 com.sun.mail.util.MailSSLSocketFactory;

public class SendEmail {

public static void main(String[] args) {

try {

//设置发件人

String from = "xxx@qq.com";

//设置收件人

String to = "xxxx@qq.com";

//设置邮件发送的服务器,这里为QQ邮件服务器

String host = "smtp.qq.com";

//获取系统属性

Properties properties = System.getProperties();

//SSL加密

MailSSLSocketFactory sf = new MailSSLSocketFactory();

sf.setTrustAllHosts(true);

properties.put("mail.smtp.ssl.enable", "true");

properties.put("mail.smtp.ssl.socketFactory", sf);

//设置系统属性

properties.setProperty("mail.smtp.host", host);

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

//获取发送邮件会话、获取第三方登录授权码

Session session = Session.getDefaultInstance(properties, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(from, "第三方登录授权码");

}

});

Message message = new MimeMessage(session);

//防止邮件被当然垃圾邮件处理,披上Outlook的马甲

message.addHeader("X-Mailer","Microsoft Outlook Express 6.00.2900.2869");

message.setFrom(new InternetAddress(from));

message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

//邮件标题

message.setSubject("This is the subject line!");

BodyPart bodyPart = new MimeBodyPart();

bodyPart.setText("我发送了文件给你");

Multipart multipart = new MimeMultipart();

multipart.addBodyPart(bodyPart);

//附件

bodyPart = new MimeBodyPart();

String fileName = "文件路径";

DataSource dataSource = new FileDataSource(fileName);

bodyPart.setDataHandler(new DataHandler(dataSource));

bodyPart.setFileName("文件显示的名称");

multipart.addBodyPart(bodyPart);

message.setContent(multipart);

Transport.send(message);

System.out.println("mail transports successfully");

} catch (Exception e) {

e.printStackTrace();

}

}

}

QQ邮箱发送邮件记得要在设置里面开启POP3/SMTP服务,然后获取第三方登录的授权码。

上面的代码中启用了SSL加密,网上很多人说QQ发送邮件不加上SSL加密会报错,楼主这里不加也是可以发送的不知道为什么,但是为了数据安全还是加上了。

有些人发送的邮件会被当做垃圾邮件处理,这里我也进行了处理,给邮件头披上Outlook的马甲,当然也可以将邮件内容以HTML格式发送,以防止被当成垃圾邮件。

上述就是一个简单的java发送QQ带附件的邮件的代码。

qq邮箱格式的Java代码_Java实现QQ邮件发送相关推荐

  1. qq邮箱格式的Java代码_java mail qq邮箱配置 实例

    程序入口: Test_Email_N.java importjava.io.IOException;importjava.util.Date;importjava.util.Properties;im ...

  2. java模拟登录qq邮箱_使用Java实现qq邮箱发送邮件

    本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下 今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送 ...

  3. android qq 邮箱格式,QQ邮箱的正确格式有哪些?文件夹怎么发送呢

    QQ邮箱的正确格式有哪些?文件夹怎么发送呢?QQ邮箱格式怎么写呢?登录QQ邮箱后,如果你想给别人写信,却不知道如何写一封电子邮件,这个问题其实很简单,不过如何发送文件夹对有些用户来说,可能觉得尴尬,据 ...

  4. 苹果邮件怎么添加qq邮箱_科技资讯:QQ邮箱格式怎么填写

    最近关于QQ邮箱格式怎么填写在网上的热度是非常高的,很多网友们也都是非常关注QQ邮箱格式怎么填写这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,那么如果说有感兴趣的网友们想知道具体的情况的话 ...

  5. java 发送邮件添加附件,Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...

  6. Java实现多附件的邮件发送

    叙:本文主要记述了 Springboot 中如何集成并实现多附件的邮件发送,以QQ邮箱的服务器为发送邮件的邮件服务器: Java实现多附件的邮件发送 1.前期准备 1.1.获取收发服务器地址及其端口号 ...

  7. 简单的Java代码实现给QQ邮箱发邮件

    一.前期准备 准备两个qq邮箱号,本例使用的是自己的两个邮箱 syc582535560@foxmail.com    2212444549@qq.com 下载javax.mail.jar  jar包 ...

  8. java读取qq邮箱_通过java给qq邮箱发送信息

    通过java程序给qq邮箱发送信息. 1.第一步:下载mail的jar包:javax.mail.jar 下载地址:https://javaee.github.io/javamail/#Latest_N ...

  9. 如何不使用QQ邮箱,纯靠代码发送QQ邮件?

    使用道具   下载了python tools的VisualStdio 2017(其实是只要有python的编译器就行) 方法介绍   这里我们使用的模块是SMTPLIB,所以很显然我这里运用的是smt ...

最新文章

  1. 为什么信不过AI看病?数据集小、可靠性差,AI医疗任重道远
  2. sklearn之svm-葡萄酒质量预测(2)
  3. 熟读《阿里巴巴java开发手册》(六、工程结构,七、 设计规约,专有名词解释)
  4. 小程序开发-利用canvas实现保存二维码海报到本机
  5. 保存的图数据丢失_锡柴自主刷写和备份共享数据文件使用介绍
  6. mysql innodb myisam 区别_InnoDB与MyISAM的六大区别_MySQL
  7. (69)Verilog HDL测试激励:时钟激励2
  8. HDU 1012 u Calculate e(简单阶乘计算)
  9. 如何测试并调试基于 NDK 的 Android 应用
  10. c/c++ static
  11. dojo/dom-class源码学习
  12. 一个帅气的车牌输入插件
  13. html5在线+网站,15个在线HTML5网页设计工具
  14. 10分钟带你彻底搞懂企业服务总线
  15. 《财务报表分析从入门到精通》——读书笔记
  16. R语言中的I(x^2)
  17. 苹果展开新显示器带动高阶需求:Mini LED背光技术
  18. 兄弟2260激光打印机硒鼓灯常亮
  19. hadoop最新官网如何下载之前版本(2.7.1)
  20. ORACLE学习笔记(七)——DBMS_LOB包的学习和使用

热门文章

  1. CSS将样式规则与HTML元素相关联
  2. CentOS6.5下通过yum仓库安装mysql
  3. Laravel API记录
  4. uwsgi安装过程中遇到的问题
  5. Python中MySQLdb的connect的用法
  6. Android中RatingBar的自定义效果
  7. 程序员水平分级 你属于哪一类?
  8. (转载)为什么Linux不需要碎片整理?
  9. Handle In-Day Changes
  10. MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)