Skip to content

Commit e61905f

Browse files
committed
update
1 parent 4af0d84 commit e61905f

29 files changed

+283
-98
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
tencentEmailFactory.getProtocolSmtp().sendHtml("test_qq_email", "test_qq_email 内容", new Address[]{new InternetAddress(toEmail)});
1515

1616
} catch (AddressException e) {
17-
e.printStackTrace();
17+
MyLog.e(e.getMessage());
1818
}
1919
//网易 163 邮箱发 email
2020
File filePath = new File(getFilesDir() + "temp" + File.separator);
@@ -35,9 +35,9 @@
3535
neteaseEmailFactory.getProtocolSmtp().sendHtmlWithFile("test_163_email", "test_163_email 内容", new File[]{file}, new Address[]{new InternetAddress(toEmail)});
3636
// 图文 带附件 //neteaseEmailFactory.getProtocolSmtp().sendHtmlWithImageAndFile("test_163_email", "test_163_email 内容",new File[]{imageFile}, new File[]{file}, new Address[]{new InternetAddress(toEmail)});
3737
} catch (IOException e) {
38-
e.printStackTrace();
38+
MyLog.e(e.getMessage());
3939
} catch (AddressException e) {
40-
e.printStackTrace();
40+
MyLog.e(e.getMessage());
4141
}
4242

4343

app/build.gradle

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,17 @@ android {
1818
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1919
}
2020
}
21-
packagingOptions {
22-
//
23-
//pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file
24-
}
21+
2522
}
2623

2724
dependencies {
28-
implementation fileTree(dir: 'libs', include: ['*.jar'])
25+
implementation fileTree(include: ['*.jar'], dir: 'libs')
2926
implementation 'com.android.support:appcompat-v7:26.1.0'
3027
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
3128
testImplementation 'junit:junit:4.12'
3229
androidTestImplementation 'com.android.support.test:runner:1.0.1'
3330
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
3431
implementation 'com.sun.mail:android-mail:1.6.0'
3532
implementation 'com.sun.mail:android-activation:1.6.0'
33+
implementation project(':library')
3634
}

app/src/main/java/com/louisgeek/javamail/MainActivity.java

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
import android.view.View;
77
import android.widget.Toast;
88

9-
import com.louisgeek.javamail.email.EmailMessage;
10-
import com.louisgeek.javamail.email.interfaces.IEmailFactory;
11-
import com.louisgeek.javamail.email.netease.NeteaseEmailFactory;
12-
import com.louisgeek.javamail.email.sina.SinaEmailFactory;
13-
import com.louisgeek.javamail.email.tencent.TencentEmailFactory;
9+
import com.louisgeek.javamail.interfaces.IEmailFactory;
10+
import com.louisgeek.javamail.microsoft.OutlookEmailFactory;
11+
import com.louisgeek.javamail.netease.NeteaseEmailFactory;
12+
import com.louisgeek.javamail.sina.SinaEmailFactory;
1413

1514
import java.io.File;
1615
import java.io.FileOutputStream;
@@ -22,18 +21,12 @@
2221
import javax.mail.internet.AddressException;
2322
import javax.mail.internet.InternetAddress;
2423

24+
2525
public class MainActivity extends AppCompatActivity {
2626
private String toEmail = "[email protected]";
2727
private String ccEmail = "[email protected]";
2828
private String bccEmail = "[email protected]";
2929

30-
private static final String USER_NAME = "[email protected]";
31-
//报 535 错误 更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。
32-
private static final String AUTH_CODE = "xxx";//qq邮箱 授权码
33-
//发送方的邮箱
34-
private static final String FROM_EMAIL = "[email protected]";
35-
//发送方姓名
36-
private static final String FROM_NAME = "xxx";
3730

3831
private ExecutorService executorService = Executors.newFixedThreadPool(2);
3932

@@ -51,36 +44,35 @@ public void onClick(View v) {
5144
@Override
5245
public void run() {
5346

54-
//
55-
//腾讯 QQ 邮箱发 email
56-
IEmailFactory tencentEmailFactory = new TencentEmailFactory();
47+
48+
IEmailFactory neteaseEmailFactory = new NeteaseEmailFactory();
5749
try {
5850
EmailMessage emailMessage = EmailMessage.newBuilder()
59-
.setTitle("test_qq_email")
60-
.setText("test_qq_email text")
61-
.setContent("test_qq_email 内容")
62-
.setCCAddresses(new Address[]{new InternetAddress(ccEmail)})
63-
.setBCCAddresses(new Address[]{new InternetAddress(bccEmail)})
51+
.setTitle("杭船业软件有限公司")
52+
.setText("杭船业软件有限公司1")
53+
.setContent("杭船业软件有限公司2")
6454
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
6555
.build();
6656

67-
tencentEmailFactory.getProtocolSmtp().send(emailMessage);
57+
neteaseEmailFactory.getProtocolSmtp().send(emailMessage);
6858

6959

7060
EmailMessage emailMessage2 = EmailMessage.newBuilder()
71-
.setTitle("test_qq_email")
72-
.setText("test_qq_email text 回执")
73-
.setContent("test_qq_email 内容 回执")
61+
.setTitle("杭船业软件有限公司回执")
62+
.setText("杭船业软件有限公司1 回执")
63+
.setContent("杭船业软件有限公司2 回执")
64+
.setCCAddresses(new Address[]{new InternetAddress(ccEmail)})
65+
.setBCCAddresses(new Address[]{new InternetAddress(bccEmail)})
7466
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
7567
.setReadReceipt(true)
7668
.build();
7769

78-
tencentEmailFactory.getProtocolSmtp().send(emailMessage2);
70+
neteaseEmailFactory.getProtocolSmtp().send(emailMessage2);
7971
} catch (AddressException e) {
80-
e.printStackTrace();
72+
MyLog.e(e.getMessage());
8173
}
8274
//网易 163 邮箱发 email
83-
File imagePath = new File(Environment.getExternalStorageDirectory() + File.separator + "temp" + File.separator + "homepage-newlogo.png");
75+
File imagePath = new File(Environment.getExternalStorageDirectory() + File.separator + "temp" + File.separator + "zfq.jpg");
8476
//
8577
File filePath = new File(getFilesDir() + File.separator + "temp" + File.separator);
8678
if (!filePath.exists()) {
@@ -95,8 +87,6 @@ public void run() {
9587
fileOutputStream.write("test_email content 中文".getBytes("utf-8"));
9688
fileOutputStream.close();
9789
//
98-
IEmailFactory neteaseEmailFactory = new NeteaseEmailFactory();
99-
//
10090
EmailMessage emailMessageWithFile = EmailMessage.newBuilder()
10191
.setTitle("test_163_email")
10292
.setText("test_163_email text")
@@ -106,7 +96,7 @@ public void run() {
10696
.build();
10797

10898
//带附件
109-
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithFile);
99+
//neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithFile);
110100

111101

112102
EmailMessage emailMessageWithImage = EmailMessage.newBuilder()
@@ -118,7 +108,7 @@ public void run() {
118108
.build();
119109

120110
// 图文
121-
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImage);
111+
// neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImage);
122112

123113
EmailMessage emailMessageWithImageAndFile = EmailMessage.newBuilder()
124114
.setTitle("test_163_email")
@@ -130,7 +120,7 @@ public void run() {
130120
.build();
131121

132122
// 图文 带附件
133-
neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImageAndFile);
123+
//neteaseEmailFactory.getProtocolSmtp().send(emailMessageWithImageAndFile);
134124

135125

136126
//
@@ -143,7 +133,7 @@ public void run() {
143133
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
144134
.build();
145135

146-
sinaEmailFactory.getProtocolSmtp().send(emailMessageS);
136+
// sinaEmailFactory.getProtocolSmtp().send(emailMessageS);
147137

148138

149139
EmailMessage emailMessageSWithImage = EmailMessage.newBuilder()
@@ -153,12 +143,24 @@ public void run() {
153143
.setImageFiles(new File[]{imagePath})
154144
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
155145
.build();
156-
sinaEmailFactory.getProtocolSmtp().send(emailMessageSWithImage);
146+
//sinaEmailFactory.getProtocolSmtp().send(emailMessageSWithImage);
147+
148+
149+
IEmailFactory outlookEmailFactory = new OutlookEmailFactory();
150+
EmailMessage emailMessageSWithImage55 = EmailMessage.newBuilder()
151+
.setTitle("test_out_email")
152+
.setText("test_out_email text")
153+
.setContent("test_out_email 图文 <img src='cid:" + imagePath.getName() + "'/>")
154+
.setImageFiles(new File[]{imagePath})
155+
.setTOAddresses(new Address[]{new InternetAddress(toEmail)})
156+
.build();
157+
//outlookEmailFactory.getProtocolSmtp().send(emailMessageSWithImage55);
158+
157159

158160
} catch (IOException e) {
159-
e.printStackTrace();
161+
MyLog.e(e.getMessage());
160162
} catch (AddressException e) {
161-
e.printStackTrace();
163+
MyLog.e(e.getMessage());
162164
}
163165

164166

@@ -167,7 +169,7 @@ public void run() {
167169

168170

169171
//
170-
Toast.makeText(MainActivity.this, "你已经点击!", Toast.LENGTH_SHORT).show();
172+
Toast.makeText(MainActivity.this, "点击成功!", Toast.LENGTH_SHORT).show();
171173

172174
}
173175
});
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.louisgeek.javamail.microsoft;
2+
3+
import com.louisgeek.javamail.EmailService;
4+
import com.louisgeek.javamail.abstracts.AbstractProtocolSmtp;
5+
import com.louisgeek.javamail.interfaces.IEmailFactory;
6+
7+
/**
8+
* Created by classichu on 2018/3/19.
9+
*/
10+
11+
public class OutlookEmailFactory implements IEmailFactory {
12+
private static final String USER_NAME = "[email protected]";
13+
private static final String AUTH_CODE = "xxx";//密码
14+
//发送方的邮箱
15+
private static final String FROM_EMAIL = "[email protected]";
16+
//发送方姓名
17+
private static final String FROM_NAME = "louisgeek_outlook";
18+
19+
@Override
20+
public AbstractProtocolSmtp getProtocolSmtp() {
21+
return new OutlookProtocol(EmailService.create(USER_NAME, AUTH_CODE, FROM_EMAIL, FROM_NAME));
22+
}
23+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.louisgeek.javamail.microsoft;
2+
3+
import com.louisgeek.javamail.EmailProtocol;
4+
import com.louisgeek.javamail.EmailService;
5+
import com.louisgeek.javamail.abstracts.AbstractProtocolSmtp;
6+
7+
/**
8+
* Created by classichu on 2018/3/19.
9+
*/
10+
11+
public class OutlookProtocol extends AbstractProtocolSmtp {
12+
private static final String MAIL_HOST = "smtp-mail.outlook.com";
13+
private static final int MAIL_HOST_PORT = 25;
14+
private static final int MAIL_HOST_PORT_SSL = 587;
15+
16+
public OutlookProtocol(EmailService mEmailService) {
17+
super(mEmailService);
18+
}
19+
20+
@Override
21+
protected EmailProtocol setupEmailProtocol() {
22+
return EmailProtocol.create(MAIL_HOST, MAIL_HOST_PORT, MAIL_HOST_PORT_SSL);
23+
}
24+
}

app/src/main/java/com/louisgeek/javamail/email/netease/NeteaseEmailFactory.java renamed to app/src/main/java/com/louisgeek/javamail/netease/NeteaseEmailFactory.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
package com.louisgeek.javamail.email.netease;
1+
package com.louisgeek.javamail.netease;
22

33

4-
import com.louisgeek.javamail.email.EmailService;
5-
import com.louisgeek.javamail.email.abstracts.AbstractProtocolSmtp;
6-
import com.louisgeek.javamail.email.interfaces.IEmailFactory;
4+
import com.louisgeek.javamail.EmailService;
5+
import com.louisgeek.javamail.abstracts.AbstractProtocolSmtp;
6+
import com.louisgeek.javamail.interfaces.IEmailFactory;
77

88
/**
99
* Created by classichu on 2018/3/14.
1010
*/
1111

1212
public class NeteaseEmailFactory implements IEmailFactory {
1313
private static final String USER_NAME = "[email protected]";
14-
private static final String AUTH_CODE = "bsoft123";//163 的授权码
14+
private static final String AUTH_CODE = "xxx";//163 的授权码
1515
//发送方的邮箱
1616
private static final String FROM_EMAIL = "[email protected]";
1717
//发送方姓名

app/src/main/java/com/louisgeek/javamail/email/netease/NeteaseProtocolSmtp.java renamed to app/src/main/java/com/louisgeek/javamail/netease/NeteaseProtocolSmtp.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package com.louisgeek.javamail.email.netease;
1+
package com.louisgeek.javamail.netease;
22

33

4-
import com.louisgeek.javamail.email.EmailProtocol;
5-
import com.louisgeek.javamail.email.EmailService;
6-
import com.louisgeek.javamail.email.abstracts.AbstractProtocolSmtp;
4+
import com.louisgeek.javamail.EmailProtocol;
5+
import com.louisgeek.javamail.EmailService;
6+
import com.louisgeek.javamail.abstracts.AbstractProtocolSmtp;
77

88
/**
99
* Created by classichu on 2018/3/14.

app/src/main/java/com/louisgeek/javamail/email/sina/SinaEmailFactory.java renamed to app/src/main/java/com/louisgeek/javamail/sina/SinaEmailFactory.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
package com.louisgeek.javamail.email.sina;
1+
package com.louisgeek.javamail.sina;
22

3-
import com.louisgeek.javamail.email.EmailService;
4-
import com.louisgeek.javamail.email.abstracts.AbstractProtocolSmtp;
5-
import com.louisgeek.javamail.email.interfaces.IEmailFactory;
3+
import com.louisgeek.javamail.EmailService;
4+
import com.louisgeek.javamail.abstracts.AbstractProtocolSmtp;
5+
import com.louisgeek.javamail.interfaces.IEmailFactory;
66

77
/**
88
* Created by louisgeek on 2018/3/19.
99
*/
1010

1111
public class SinaEmailFactory implements IEmailFactory {
1212
private static final String USER_NAME = "[email protected]";
13-
//报 535 错误 更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。
14-
private static final String AUTH_CODE = "zfq69@wb";//qq邮箱 授权码
13+
private static final String AUTH_CODE = "xxx";//密码
1514
//发送方的邮箱
1615
private static final String FROM_EMAIL = "[email protected]";
1716
//发送方姓名

0 commit comments

Comments
 (0)