Java实现邮件发送功能

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

//相关代码

package com.jeesite.utils;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.util.Date;

import java.util.Properties;

public class SendMail {

//发件人地址

public static String senderAddress = "18538731353@163.com";

//收件人地址

//public static String recipientAddress = "18538731353@163.com";

//发件人账户名

public static String senderAccount = "18538731353@163.com";

//发件人账户密码

public static String senderPassword = "wang123";

/**

* 获得创建一封邮件的实例对象

* @param session

* @return

* @throws MessagingException

* @throws AddressException

*/

public static MimeMessage getMimeMessage(Session session , String recipientAddress,String incomeList) throws Exception{

//创建一封邮件的实例对象

MimeMessage msg = new MimeMessage(session);

//设置发件人地址

msg.setFrom(new InternetAddress(senderAddress));

/**

* 设置收件人地址(可以增加多个收件人、抄送、密送),即下面这一行代码书写多行

* MimeMessage.RecipientType.TO:发送

* MimeMessage.RecipientType.CC:抄送

* MimeMessage.RecipientType.BCC:密送

*/

msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(recipientAddress));

//设置邮件主题

msg.setSubject("对账单","UTF-8");

//设置邮件正文

msg.setContent(incomeList, "text/html;charset=UTF-8");

//设置邮件的发送时间,默认立即发送

msg.setSentDate(new Date());

return msg;

}

public static void sendIncomeMail(String recipientAddress,String incomeList)throws Exception{

//1、连接邮件服务器的参数配置

Properties props = new Properties();

//阿里云服务器禁用25端口,所以服务器上改为465端口

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

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

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

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

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

// props.setProperty("mail.smtp.ssl.enable", "true");

//设置用户的认证方式

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

//设置传输协议

props.setProperty("mail.transport.protocol", "smtp");

//设置发件人的SMTP服务器地址

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

//2、创建定义整个应用程序所需的环境信息的 Session 对象

Session session = Session.getInstance(props);

//设置调试信息在控制台打印出来

session.setDebug(true);

//3、创建邮件的实例对象

Message msg = getMimeMessage(session,recipientAddress,incomeList);

//4、根据session对象获取邮件传输对象Transport

Transport transport = session.getTransport();

//设置发件人的账户名和密码

transport.connect(senderAccount, senderPassword);

//发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人

transport.sendMessage(msg,msg.getAllRecipients());

//如果只想发送给指定的人,可以如下写法

//transport.sendMessage(msg, new Address[]{new InternetAddress("xxx@qq.com")});

//5、关闭邮件连接

transport.close();

}

//测试

public static void main(String[] args) {

try {

sendIncomeMail("201269920@qq.com","邮件接口测试");

} catch (Exception e) {

e.printStackTrace();

System.out.println("失败");

}

}

}

 

//相关依赖

<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茂林修竹丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值