Skip to content

Commit c8ac823

Browse files
committed
update
1 parent e61905f commit c8ac823

File tree

2 files changed

+87
-25
lines changed

2 files changed

+87
-25
lines changed

README.md

Lines changed: 87 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,64 @@
22

33
```groovy
44
implementation 'com.sun.mail:android-mail:1.6.0'
5-
implementation 'com.sun.mail:android-activation:1.6.0'
5+
implementation 'com.sun.mail:android-activation:1.6.0'
66
```
77

88

9+
1 继承 AbstractProtocolSmtp 配置邮箱Smtp服务信息
10+
```java
11+
public class NeteaseProtocolSmtp extends AbstractProtocolSmtp {
12+
private static final String MAIL_HOST = "smtp.163.com";
13+
private static final int MAIL_HOST_PORT = 25;
14+
private static final int MAIL_HOST_PORT_SSL = 465;// 465 / 994
15+
16+
public NeteaseProtocolSmtp(EmailService emailService) {
17+
super(emailService);
18+
}
19+
20+
@Override
21+
public EmailProtocol setupEmailProtocol() {
22+
return EmailProtocol.create(MAIL_HOST, MAIL_HOST_PORT, MAIL_HOST_PORT_SSL);
23+
}
24+
}
25+
```
926

27+
2 实现 IEmailFactory 工厂 配置账户信息
1028
```java
11-
//腾讯 QQ 邮箱发 email
12-
IEmailFactory tencentEmailFactory = new TencentEmailFactory();
13-
try {
14-
tencentEmailFactory.getProtocolSmtp().sendHtml("test_qq_email", "test_qq_email 内容", new Address[]{new InternetAddress(toEmail)});
29+
public class NeteaseEmailFactory implements IEmailFactory {
30+
private static final String USER_NAME = "bsoft_app@163.com";
31+
private static final String AUTH_CODE = "xxx";//163 的授权码
32+
//发送方的邮箱
33+
private static final String FROM_EMAIL = "bsoft_app@163.com";
34+
//发送方姓名
35+
private static final String FROM_NAME = "louisgeek_netease";
36+
37+
@Override
38+
public AbstractProtocolSmtp getProtocolSmtp() {
39+
return new NeteaseProtocolSmtp(EmailService.create(USER_NAME, AUTH_CODE, FROM_EMAIL, FROM_NAME));
40+
}
41+
}
42+
```
1543

16-
} catch (AddressException e) {
17-
MyLog.e(e.getMessage());
18-
}
19-
//网易 163 邮箱发 email
20-
File filePath = new File(getFilesDir() + "temp" + File.separator);
44+
45+
3 发送邮件
46+
```java
47+
// 普通
48+
IEmailFactory neteaseEmailFactory = new NeteaseEmailFactory();
49+
try {
50+
EmailMessage emailMessage = EmailMessage.newBuilder()
51+
.setTitle("杭船业软件有限公司")
52+
.setText("杭船业软件有限公司1")
53+
.setContent("杭船业软件有限公司2")
54+
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
55+
.build();
56+
57+
neteaseEmailFactory.getProtocolSmtp().send(emailMessage);
58+
59+
//
60+
File imagePath = new File(Environment.getExternalStorageDirectory() + File.separator + "temp" + File.separator + "zfq.jpg");
61+
//
62+
File filePath = new File(getFilesDir() + File.separator + "temp" + File.separator);
2163
if (!filePath.exists()) {
2264
filePath.mkdirs();
2365
}
@@ -30,19 +72,41 @@
3072
fileOutputStream.write("test_email content 中文".getBytes("utf-8"));
3173
fileOutputStream.close();
3274
//
33-
IEmailFactory neteaseEmailFactory = new NeteaseEmailFactory();
34-
//带附件
35-
neteaseEmailFactory.getProtocolSmtp().sendHtmlWithFile("test_163_email", "test_163_email 内容", new File[]{file}, new Address[]{new InternetAddress(toEmail)});
36-
// 图文 带附件 //neteaseEmailFactory.getProtocolSmtp().sendHtmlWithImageAndFile("test_163_email", "test_163_email 内容",new File[]{imageFile}, new File[]{file}, new Address[]{new InternetAddress(toEmail)});
37-
} catch (IOException e) {
38-
MyLog.e(e.getMessage());
39-
} catch (AddressException e) {
40-
MyLog.e(e.getMessage());
41-
}
42-
43-
44-
}
45-
});
75+
EmailMessage emailMessageWithFile = EmailMessage.newBuilder()
76+
.setTitle("test_163_email")
77+
.setText("test_163_email text")
78+
// .setContent("test_163_email 带附件")
79+
// .setFiles(new File[]{file})
80+
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
81+
.build();
82+
83+
//带附件
84+
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithFile);
85+
86+
//
87+
88+
EmailMessage emailMessageWithImage = EmailMessage.newBuilder()
89+
.setTitle("test_163_email")
90+
.setText("test_163_email text")
91+
.setContent("test_163_email 图文 <img src='cid:" + imagePath.getName() + "'/>")
92+
.setImageFiles(new File[]{imagePath})
93+
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
94+
.build();
95+
96+
// 图文
97+
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImage);
98+
//
99+
EmailMessage emailMessageWithImageAndFile = EmailMessage.newBuilder()
100+
.setTitle("test_163_email")
101+
.setText("test_163_email text")
102+
.setContent("test_163_email 图文 带附件")
103+
.setImageFiles(new File[]{imagePath})
104+
.setFiles(new File[]{file})
105+
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
106+
.build();
107+
108+
// 图文 带附件
109+
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImageAndFile);
46110

47111
```
48112

app/src/main/java/com/louisgeek/javamail/netease/NeteaseEmailFactory.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@ public class NeteaseEmailFactory implements IEmailFactory {
1717
//发送方姓名
1818
private static final String FROM_NAME = "louisgeek_netease";
1919

20-
2120
@Override
2221
public AbstractProtocolSmtp getProtocolSmtp() {
2322
return new NeteaseProtocolSmtp(EmailService.create(USER_NAME, AUTH_CODE, FROM_EMAIL, FROM_NAME));
2423
}
25-
2624
}

0 commit comments

Comments
 (0)