使用JavaMail SMTP协议发送邮件
来源:互联网 发布:电脑c语言编译器 编辑:程序博客网 时间:2024/05/03 18:00
使用JavaMail SMTP协议发送邮件
最近需要实现通过发送邮件让用户找回密码的功能,自己用Socket写了SMTP协议的邮件发送程序,但是很多邮件服务器的anti-spam需要验证发送邮箱的合法性,所以只得放弃,后来发现用javamail包可以很方便的实现。示例程序使用gmail的邮件服务器来发送邮件。关于SMTP端口等配置见下面链接:
https://support.google.com/mail/bin/answer.py?hl=en&answer=13287
注:下面程序需导入javaee-api-6.0.jar 跟 mail.jar
1.使用TLS发送邮件
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
<span style=
"font-size:16px;"
>
import
java.util.Properties;
import
javax.mail.Message;
import
javax.mail.MessagingException;
import
javax.mail.PasswordAuthentication;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeMessage;
public
class
SendMailTLS {
public
static
void
main(String[] args) {
final
String username =
"someoe@gmail.com"
;
final
String password =
"password"
;
Properties props =
new
Properties();
props.put(
"mail.smtp.auth"
,
"true"
);
props.put(
"mail.smtp.starttls.enable"
,
"true"
);
props.put(
"mail.smtp.host"
,
"smtp.gmail.com"
);
props.put(
"mail.smtp.port"
,
"587"
);
Session session = Session.getInstance(props,
new
javax.mail.Authenticator() {
protected
PasswordAuthentication getPasswordAuthentication() {
return
new
PasswordAuthentication(username, password);
}
});
try
{
Message message =
new
MimeMessage(session);
message.setFrom(
new
InternetAddress(
"someone@gmail.com"
));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(
"someone@yourISP.com"
));
message.setSubject(
"Testing Subject"
);
message.setText(
"Dear Mail Crawler,"
+
"\n\n No spam to my email, please!"
);
Transport.send(message);
System.out.println(
"Done"
);
}
catch
(MessagingException e) {
throw
new
RuntimeException(e);
}
}
}</span>
2.使用SSL发送邮件
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
<span style=
"font-size:18px;"
><span style=
"font-size:16px;"
>
import
java.util.Properties;
import
javax.mail.Message;
import
javax.mail.MessagingExcept</span>ion;
import
javax.mail.PasswordAuthentication;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeMessage;
public
class
SendMailSSL {
public
static
void
main(String[] args) {
Properties props =
new
Properties();
props.put(
"mail.smtp.host"
,
"smtp.gmail.com"
);
props.put(
"mail.smtp.socketFactory.port"
,
"465"
);
props.put(
"mail.smtp.socketFactory.class"
,
"javax.net.ssl.SSLSocketFactory"
);
props.put(
"mail.smtp.auth"
,
"true"
);
props.put(
"mail.smtp.port"
,
"465"
);
Session session = Session.getDefaultInstance(props,
new
javax.mail.Authenticator() {
protected
PasswordAuthentication getPasswordAuthentication() {
return
new
PasswordAuthentication(
"username"
,
"password"
);
}
});
try
{
Message message =
new
MimeMessage(session);
message.setFrom(
new
InternetAddress(
"from@no-spam.com"
));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(
"to@no-spam.com"
));
message.setSubject(
"Testing Subject"
);
message.setText(
"Dear Mail Crawler,"
+
"\n\n No spam to my email, please!"
);
Transport.send(message);
System.out.println(
"Done"
);
}
catch
(MessagingException e) {
throw
new
RuntimeException(e);
}
}
}</span>
0 0
- 使用JavaMail SMTP协议发送邮件
- 使用JavaMail SMTP协议发送邮件
- JavaMail(1)--使用SMTP协议发送简单邮件
- 使用JavaMail通过SMTP协议发送局域网(内网)邮件
- 使用javamail发送SMTP验证邮件
- 使用javamail利用SMTP服务发送邮件
- 使用JavaMail连接邮件发送服务器smtp
- 使用SMTP协议发送邮件
- 使用smtp协议发送邮件
- JavaMail使用SMTP协议发送电子邮件
- JavaMail使用SMTP协议发送电子邮件
- JavaMail使用SMTP协议发送电子邮件(详解)
- JavaMail使用SMTP协议发送电子邮件(详解)
- JavaMail使用SMTP协议发送电子邮件(详解)
- java邮件发送的简单实现,使用javamail通过smtp协议发信
- javamail技术smtp发送邮件
- javamail技术smtp发送邮件
- SMTP协议发送邮件
- MySQL varchar 查询时大小写问题
- JSP标签发开
- 【转载】WPF里面的x:Name和Name
- RMAN RECOVER COPY OF使用方法
- Bean Validation provider is not present, therefore bean validation is disabled
- 使用JavaMail SMTP协议发送邮件
- 求最长子串的长度(Longest Substring Without Repeating Characters)
- Canvas之时钟
- 欢迎使用CSDN-markdown编辑器
- 看数据结构写代码(39) 图的遍历(深搜和广搜)
- 将json转化为lua中的表
- 1377切面条
- Struts2标签
- C# FORM继承体制、可视化编程解决方案