jsp,java项目邮箱注册发送邮件

来源:互联网 发布:linux程序设计第4版pdf 编辑:程序博客网 时间:2024/05/01 18:35
由于项目需要用户邮箱注册首先要导入javaMail包,然后在项目中加上下面的程序即可。package com.bikehui.DB.daoImpls;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;/** *  * @author songwenju * 发邮件 * */public class SendMail {private String from = ***@163.com";         //你本人要用的邮箱地址,必须是163邮箱private String user = "***";//发件人称号,保证和上一条@之前的内容相同String password = "***";        //发件人邮箱//构造函数public SendMail(){}/** *  * @param to * @param text * @param title *//*发送验证信息的邮件*/public void sendMail(String to,String text,String title){Properties props = new Properties();props.setProperty("mail.smtp.host", "smtp.163.com");    // 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器) props.put("mail.smtp.host","smtp.163.com");  // 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条) props.put("mail.smtp.auth", "true");  // 用刚刚设置好的props对象构建一个session Session session = Session.getDefaultInstance(props);    // 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使  用(你可以在控制台(console)上看到发送邮件的过程)  session.setDebug(true);  // 用session为参数定义消息对象  MimeMessage message = new MimeMessage(session);  // 加载发件人地址   try{message.setFrom(new InternetAddress(from));    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 加载收件人地址    message.setSubject(title);       // 加载标题      Multipart multipart = new MimeMultipart();  // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件BodyPart contentPart = new MimeBodyPart();  // 设置邮件的文本内容  contentPart.setContent(text,"text/html;charset=utf-8");  multipart.addBodyPart(contentPart);message.setContent(multipart);  message.saveChanges();   //保存变化 Transport transport = session.getTransport("smtp");   // 连接服务器的邮箱  transport.connect("smtp.163.com", user, password);   // 把邮件发送出去  transport.sendMessage(message, message.getAllRecipients());   transport.close();} catch(MessagingException e){e.printStackTrace();}}/** *  * @param to * @param userName * @return */public String sendRegistMail(String to,String userName){String registerId = "" + Math.random() * Math.random();String url = "http://***/RegisterMailBackServlet?registerId=" + registerId+"&userName="+userName;//点击该链接回到项目中String text = "<p>亲爱的用户,您好!感谢您注册bike汇自行车网,请点击下面的链接完成邮箱验证:</p>" +"<a href='"+url+"'>"+url+"</a><br /><p></p>如链接点击无效,您可以将链接复制到浏览器中直接打开。<p>bike汇自行车网</p>";                                                                //发送html格式的邮件到邮箱String title = "[bike汇]网站注册";sendMail(to,text,title);//待会用户点在邮箱中点击这个链接回到你的网站return registerId;}        public static void main(String []args){                //做测试用SendMail s = new SendMail();s.sendMail("1565270590@qq.com", "你好,云水", "[bike汇]找回您的帐户密码");}}



补充点内容,现在使用163邮箱登陆要用授权码了,而不是密码登陆,否则会出现

535 Error: authentication failed

授权码设置位置:


3 0
原创粉丝点击