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

java代码发送邮件工具类

2017-10-19 09:23 441 查看
邮件发送工具类:public class EmailUtils {public static void sendEmail(Notice notice,String email) {String myAccount = "你的发件邮箱";String myPass = "写你自己的授权码";//授权码// 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com// 网易163邮箱的 SMTP 服务器地址为: smtp.163.comString SMTPHost = "smtp.qq.com";// 1. 创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties(); // 参数配置props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)props.setProperty("mail.smtp.host", SMTPHost); // 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true"); // 需要请求认证props.setProperty("mail.smtp.starttls.enable", "true");// 2. 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getDefaultInstance(props);session.setDebug(false); // 设置为debug模式, 可以查看详细的发送 logtry {// 3. 创建一封邮件MimeMessage message = createMsg(session, myAccount, email,notice);// 4. 根据 Session 获取邮件传输对象Transport transport = session.getTransport();//5. 连接邮箱服务器transport.connect(myAccount,myPass);// 记住这个密码是授权码// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人,// 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();}catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 创建一封激活信息的邮件** @param session*            和服务器交互的会话* @param sendMail*            发件人邮箱* @param user*           用户对象*/private static MimeMessage createMsg(Session session, String sendMail,String email, Notice notice) throws Exception {// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人message.setFrom(new InternetAddress(sendMail, "人事管理系统", "UTF-8"));// 3. To: 收件人(可以增加多个收件人、抄送、密送)message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(email, "UTF-8"));// 4. Subject: 邮件主题message.setSubject("公告通知", "UTF-8");String ip = InetAddress.getLocalHost().getHostAddress();// 5. Content: 邮件正文(可以使用html标签)message.setContent("您好,您有最新公告!<br/>"+notice.getTitle()+"<br/>"+notice.getContent(),"text/html;charset=UTF-8");// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();return message;}}
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息