您的位置:首页 > 编程语言 > Java开发

java免费发送邮件实现

2016-01-12 17:01 495 查看
package com.evan.mail;

import java.util.Date;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class SendMail {

public static void main(String[] args) {

MessageVo mv = new MessageVo();

mv.setSubject("很遗憾,您的程序出bug了"+new Date());

mv.setText("bug的具体内容为:"+"空指针异常");

mv.setToMailAddress("zhanglong@jijiankang.cn");

sendMail(mv);

}

public static void sendMail(MessageVo mv ){

final String username = "827886866@163.com";

final String password = "**************";

boolean isSSL = true;

String host = "smtp.163.com";

int port = 465;

boolean isAuth = true;

String from = "827886866@163.com";

Properties props = new Properties();

props.put("mail.smtp.ssl.enable", isSSL);

props.put("mail.smtp.host", host);

props.put("mail.smtp.port", port);

props.put("mail.smtp.auth", isAuth);

Session session = Session.getDefaultInstance(props, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username, password);

}

});

try {

Message message = new MimeMessage(session);

message.setFrom(new InternetAddress(from));

message.setSubject(mv.getSubject());

message.setText(mv.getText());

message.addRecipient(Message.RecipientType.TO, new InternetAddress(mv.getToMailAddress()));

Transport.send(message);

} catch (AddressException e) {

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

}

System.out.println("发送完毕!");

}

}

需要注意的是:

1、发件人邮箱没有开通pop3/SMTP协议需要开通

2、发件人163邮件发送次数多了,163会提示说账号有安全威胁之类,需要你在163邮箱设置授权

3、项目中需要用到的jar是mail-1.4.5.jar

直接将项目导入eclipse,运行main方法即可完成发送邮件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: