java发送邮件
程序员文章站
2022-06-14 13:03:38
...
■java代码
(类子中的代码,邮箱与密码是硬编码形式写入代码的,正常编写代码不要使用硬编码。)
关于授权码,很久之前(2009年)的时候还没有,直接使用密码就可以。
现在要使用授权码
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailSend {
private String EMail;
private String id;
private String pass;
public MailSend(String EMail,String id,String pass){
this.EMail = EMail;
this.id = id;
this.pass = pass;
}
public boolean sendEmail(){
String from="XXXX@XXX.com";
String to = EMail;
String text="您已成功注册,可以使用该平台进行留言,您的帐号是:"+id+
"密码是:"+pass+"\n"+"希望您保存该邮件,以便忘记密码时查找";
String mailserver = "smtp.sina.com";
String name = from;
// 授权码
String pass ="XXXXXX";
Auth auth = new Auth(name,pass);
//0
Properties props = new Properties();
props.put("mail.smtp.host", mailserver);
props.put("mail.smtp.auth", "true");
//1
Session mailSession = Session.getInstance(props,auth);
try{
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSentDate(new Date());
msg.setSubject("留言板注册成功");
msg.setText(text);
System.out.println("before send");
Transport.send(msg);
System.out.println("发送成功");
}catch(Exception e){
System.out.println("发送失败");
e.printStackTrace();
}
return true;
}
}
■收到邮件的效果
■邮件设置(设置里面开启POP/IMAP/SMTP)
开启之后,邮件方面会提供一个授权码,在代码中使用
■使用的jar
maven的pom中定义如下,就可以引入jar包
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
■使用的jar的下载地址(提供给不方便使用maven导入jar包的人)
https://download.csdn.net/download/sxzlc/12142594