Java|Java 发送邮箱(一)

Java 发送邮箱(一) java 官方封装了发送邮件的协议,但是没有放到 jdk 中,所以我们如果想实现 发送邮箱的功能,需要加入依赖。
笔者这里用的是 maven

com.sun.mail javax.mail 1.6.2

废话不多说,直接上代码
public class EmailTest {public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {//进行配置 Properties props = new Properties(); props.setProperty("mail.smtp.host","smtp.163.com"); //配置 SMTP 服务器地址 props.setProperty("mail.smtp.port", "25"); //请求的端口 props.setProperty("mail.transport.protocol","smtp"); //请求的协议 props.setProperty("mail.smtp.auth","true"); //需要认证请求 props.setProperty("mail.smtp.ssl.enable", "true"); // 开启ssl//创建一个程序与邮件服务器会话对象 Session Session session = Session.getDefaultInstance(props); //开启Debug 模式 session.setDebug(true); //通过 session 得到transport 对象 Transport ts = session.getTransport(); //使用邮箱的用户名和密码连接上邮件服务器 ts.connect("smtp.163.com","************@163.com","*************"); //创建邮件 Message message = createSimpleMail(session); //发送邮件 ts.sendMessage(message,message.getAllRecipients()); //关闭邮件 ts.close(); }/** *生成Message对象 */ private static Message createSimpleMail(Session session) throws MessagingException, UnsupportedEncodingException {MimeMessage message = new MimeMessage(session); //指定邮件的发件人 message.setFrom(new InternetAddress("************@163.com")); //指定邮件的收件人的邮箱以及昵称 message.setRecipient(Message.RecipientType.TO,new InternetAddress("**********@qq.com","test")); //邮件的标题 message.setSubject("测试"); //邮箱的内容 message.setText("你好!"); return message; }}

笔者这里使用的是网易邮箱服务。这里有一个地方要注意
【Java|Java 发送邮箱(一)】网易的客户端授权码默认是关闭的,需要登陆邮箱手动设置成开启状态,如果不设置的话,会抛出认证失败的异常

    推荐阅读