利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)

Spring提供了发送电子邮件的支持,可以发送普通邮件、带附件邮件、HTML格式邮件,甚至还可以使用Velocity模板定制化邮件内容。

一、引入相关的库


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<!-- spring核心库 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-core</artifactId>

            <version>4.2.5.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-beans</artifactId>

            <version>4.2.5.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context</artifactId>

            <version>4.2.5.RELEASE</version>

        </dependency>

        <!--发送Email-->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context-support</artifactId>

            <version>4.2.5.RELEASE</version>

        </dependency>

        <dependency>

            <groupId>javax.mail</groupId>

            <artifactId>mail</artifactId>

            <version>1.4.7</version>

        </dependency>

二、发送邮件代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

import org.springframework.core.io.ClassPathResource;

import org.springframework.mail.SimpleMailMessage;

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;

import javax.mail.internet.MimeMessage;

public class SpringEmail {

    private JavaMailSenderImpl mailSender=null;

    //邮件用户名

    private String userName="";

    //发送邮箱名称

    private String from="@163.com";

    //接收邮箱名称

    private String to="@qq.com";

    public SpringEmail()

    {

        this.mailSender = new JavaMailSenderImpl();

        //邮箱smtp服务器

        mailSender.setHost("smtp.163.com");

        mailSender.setPort(25);

        mailSender.setUsername(this.userName);

        //邮箱密码

        mailSender.setPassword("xxxx");

    }

    //普通文本Email

    public void sendPureMail() {

        SimpleMailMessage message = new SimpleMailMessage();

        String spitterName = "这里是标题(纯文本)";

        message.setFrom(this.from);

        message.setTo(this.to);

        message.setSubject("这里是标题!");

        message.setText("这里是内容");

        this.mailSender.send(message);

    }

    //带多个附件的Email

    public void sendMailWithAttachment() throws MessagingException {

        MimeMessage message = mailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(message, true);

        helper.setFrom(this.from);

        helper.setTo(this.to);

        helper.setSubject("这里是标题(带多个附件)!");

        helper.setText("这里是内容(带附件)");

        //添加两个附件(附件位置位于java-->resources目录),可根据需要添加或修改

        ClassPathResource image = new ClassPathResource("/coupon.jpg");

        ClassPathResource PDF = new ClassPathResource("/Rop Reference.pdf");

        helper.addAttachment("Coupon.png", image);

        helper.addAttachment("Rop Reference.pdf", PDF);

        this.mailSender.send(message);

    }

    //带附件的HTML格式的Email

    public void sendMailHtmlWithAttachment() throws MessagingException {

        MimeMessage message = mailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(message, true,"GBK"); //解决乱码问题

        helper.setFrom(this.from);

        helper.setTo(this.to);

        helper.setSubject("这里是标题(Html带附件)!");

        //设置META解决乱码问题

        helper.setText("<html><META http-equiv=Content-Type content=‘text/html; charset=GBK‘><body><img src=‘cid:Coupon‘>" +

                "<h4>" + "测试乱码" + " says...</h4>" +

                "<i>" + "测试乱码2" + "</i>" +

                "</body></html>", true);

        //图片嵌入到html文件中

        ClassPathResource couponImage = new ClassPathResource("/coupon.jpg");

        helper.addInline("Coupon", couponImage);

        //图片作为附件发送

        ClassPathResource couponImage2 = new ClassPathResource("/coupon.jpg");

        helper.addAttachment("Coupon.png", couponImage2);

        this.mailSender.send(message);

    }

    public static void main(String[] args) throws MessagingException{

        System.out.println("开始发送邮件");

        SpringEmail email=new SpringEmail();

        //email.sendPureMail();

        //email.sendMailWithAttachment();

        email.sendMailHtmlWithAttachment();

        System.out.println("邮件发送成功");

    }

}

来自为知笔记(Wiz)

时间: 2024-10-06 06:30:36

利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)的相关文章

javax.mail 发邮件 添加附件

都是javax.mail 的使用,没有太多要讲的,代码贴上自己试验吧 private MimeMessage mailMessage; // 邮件对象 private Multipart mp;// 附件添加的组件 private List files = new LinkedList();// 存放附件文件 /** * 增加发送附件 * * @param filename * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */ public boolean

javax.mail 发邮件时添加附件

import java.util.Properties; 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 发邮件方法二

import java.util.Properties; 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.i

spring boot 邮件发送(带附件)

首先开启QQ邮箱的POP.SMTP服务器,获取授权码. 设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 pom.xml需要加载三个jar,可以在这个网站里下载:https://mvnrepository.com/ html页面 <form action="/send" method="post" enctype="multipart/form-data"> <ta

Java使用javax.mail.jar发送邮件并同意发送附件

因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一直都认为作为开发者,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序员发展的重中之重!好啦.闲话就讲到这里.来点实际的. 当一个开发者工作到一定程度后,面向对象的思维就会一直在他的老子里环绕.所以我们先把邮件的常量类.实体类以及工具类等等先该封装

Kettle实现邮件发送并带附件功能

概述:数据抽取项目中,要求统计的数据报表定时发送报表.在网上搜了很多,没有发现比较好的文章.特做下笔记. 实现: 1.总体作业JOB截图 流程:设置导出的Excel文件名变量,导出Excel,并将导出的Excel以附件形式发送到指定邮箱. 其实实现邮件带附件 主要是组件是: 2.邮件设置(采用的是腾讯邮箱) 2-1:地址设置 2-2:服务器设置 2-3:邮件消息设置 2-4:附件设置(对于带附加发送的,这里设置比较重要) 到这里为止,kettle发送带附件的邮件作业已经开发完毕

python最简单的发邮件方式(不带附件)

今天在尝试使用python发送邮件,在网上看了很多教程,发觉对于初学者的我有点复杂和代码比较麻烦,而且也没有太多的注释告诉我这是干嘛用的,用法是什么 这个教程十分简单,但是我足够应付我日常工作的需要了,作为运维,我要的功能只是能够发送邮件并且正确显示其内容就够,不需要太多花俏的东西. 测试的准备工作是,我在虚拟机下把w的命令输出重定向到一个文件,作为邮件body体的发送内容. w > msg.log [[email protected] tmp]# cat msg.log 02:48:50 up

python实现邮件发送完整代码(带附件发送方式)

实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartimport smtplib, datetime def SendMailAttach(): msg = MIMEMultip

linux mail利用外部邮箱地址发邮件

mail命令发送邮件需要sendmail或postfix服务 三种常用格式发信 mail -s "标题" [email protected] #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束 echo “mail content”|mail -s "标题" [email protected] #第二种方法,我用的最多,可能是喜欢管道的缘故吧 mail -s "标题" [email protected] < f