请教JavaMail验证问题

问题描述

以下是我的send方法:packageuntitled1;importjava.io.*;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.mail.*;importjavax.mail.internet.*;importjavax.activation.*;importjava.util.Date;importjava.util.Hashtable;importjava.util.Properties;publicclassServlet1extendsHttpServlet{privatestaticfinalStringCONTENT_TYPE="text/html;charset=GB18030";//Initializeglobalvariablespublicvoidinit()throwsServletException{}//ProcesstheHTTPGetrequestpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType(CONTENT_TYPE);PrintWriterout=response.getWriter();send(request,response);out.close();}//ProcesstheHTTPPostrequestpublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}//Cleanupresourcespublicvoiddestroy(){}publicvoidsend(HttpServletRequestrequest,HttpServletResponseresponse)throwsUnsupportedEncodingException,IOException,ServletException{StringserverName;StringtoUser;StringfromUser;StringmailTitle;StringmailText;StringmailServer;StringaddFile;Stringhost;Stringuser="123456@163.com";Stringpwd="123456";host="smtp.qq.com";request.setCharacterEncoding("GBK");serverName=request.getParameter("serverName");mailServer=request.getParameter("mailServer");toUser=request.getParameter("toUser");fromUser=request.getParameter("fromUser");mailTitle=request.getParameter("mailTitle");addFile=request.getParameter("file");mailText=request.getParameter("mailText");MailBeanmb=newMailBean();mb.setServerName(serverName);mb.setMailServer(mailServer);mb.setToUser(toUser);mb.setFromUser(fromUser);mb.setMailTitle(mailTitle);mb.setAddFile(addFile);mb.setMailText(mailText);Propertiesprops=newProperties();//设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)props.put("mail.smtp.host",host);//需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)props.put("mail.smtp.auth","true");//用刚刚设置好的props对象构建一个sessionSessionsession=Session.getInstance(props);//有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使//用(你可以在控制台(console)上看到发送邮件的过程)session.setDebug(true);//用session为参数定义消息对象MimeMessagemessage=newMimeMessage(session);try{//加载发件人地址message.setFrom(newInternetAddress(mb.getFromUser()));//加载收件人地址message.addRecipient(Message.RecipientType.TO,newInternetAddress(mb.getToUser()));//加载标题message.setSubject(mb.getMailTitle());//向multipart对象中添加邮件的各个部分内容,包括文本内容和附件Multipartmultipart=newMimeMultipart();//设置邮件的文本内容BodyPartcontentPart=newMimeBodyPart();contentPart.setText(mb.getMailText());multipart.addBodyPart(contentPart);//添加附件//BodyPartmessageBodyPart=newMimeBodyPart();//DataSourcesource=newFileDataSource(affix);//添加附件的内容//messageBodyPart.setDataHandler(newDataHandler(source));//添加附件的标题//这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码//sun.misc.BASE64Encoderenc=newsun.misc.BASE64Encoder();//messageBodyPart.setFileName("=?GBK?B?"+//enc.encode(affixName.getBytes())+"?=");//multipart.addBodyPart(messageBodyPart);//将multipart对象放到message中message.setContent(multipart);//保存邮件message.saveChanges();//发送邮件Transporttransport=session.getTransport("smtp");//连接服务器的邮箱transport.connect(host,user,pwd);//把邮件发送出去transport.sendMessage(message,message.getAllRecipients());transport.close();}catch(Exceptione){e.printStackTrace();}}}我使用此方法发送人和收件人都是163的邮箱都没有问题但使用其他邮箱的用户名就会报异常如何我应该如何解决此问题~我想使用任意邮箱收发邮件应该怎么做小白叩谢!!!!!

解决方案

解决方案二:
Authenticatorauth=newAuthenticator(){publicPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(username,password);}});Sessionsession=Session.getInstance(props,auth);试下

时间: 2024-07-28 16:34:38

请教JavaMail验证问题的相关文章

javamail 验证总是错误

问题描述 我编写javamail总是报错.错误的原因是验证错误就是下面的这句:transport.connect((String)props.get("mail.smtp.host"),username,password);请大家帮小妹,多谢... 解决方案 解决方案二:我用javamail做了一个邮件系统..把你用的邮件服务器及访问协议.重要代码说一下.解决方案三:在邮件服务器上是不是有这个账号.传的三个参数有没有问题.解决方案四:引用1楼powerchuangwai的回复: 我用j

javamail中使用发信身份验证

问题:朝三暮四郎 于 2001-8-17 17:23:50 加贴在 JAVA技术 ←返回版面    请教javamail发信的身份验证问题!!! javamail中的demo都是不要身份验证的,我看了几遍http://java.sun.com/products/javamail/1.2/docs/javadocs/index.html还是不知道怎么改!!! 回答:这样使用即可:props.put("mail.smtp.auth", "true"); Transpor

请教一个正则表达式 在线等!!!!

问题描述 请教一个验证这样'D:重要东西Model_Shanxi_20090325[3-1_Allocation_Capex&Opex-LNE.xls]3-1.4_LNEUnitCost'!$E$24一串的正则表达式!请高手帮忙啊 解决方案 解决方案二:或者能验证引号是否存在这个字符串里!!各位高手多多指教啊!解决方案三:说实话,没看懂!如果只是引号的话"'.*'" 解决方案四:就是我要验证这个''是否存在里面解决方案五:但是用java正则表达式里你这个查不出来啊......解

javamail发送邮件的简单实例(转)

  javamail发送邮件的简单实例 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可. 第一个类:MailSenderInfo.java  package com.util.mail;    /**    * 发送邮件需要使用的基本信息  *author by wangfun   */     import java.util.Pro

正则验证时间格式(只包含小时和分钟)

问题描述 正则验证时间格式(只包含小时和分钟) 请教正则验证HH:mm格式的时间字符串,严格匹配,符合24小时的时钟规律,匹配时如何控制到00-24? 如00:00 - 24:00 解决方案 String time = "12:34"; Pattern p = Pattern.compile("^([01][0-9]|2[0-3]):([0-5][0-9])$"); Matcher m = p.matcher(time); if(m.find()){ System.

Java mail 发送邮件的具体实例_java

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可.jar包因为我不知道怎么传到javaeye上,所以朋友们回去自己打吧. 我的代码有三个类: 第一个类:MailSenderInfo.java 复制代码 代码如下: package com.util.mail;/** * 发送邮件需要使用的基本信息 */ import java.util.P

网易邮箱验证-javamail 如何设置验证错误时提示出相应密码与用户名的错误

问题描述 javamail 如何设置验证错误时提示出相应密码与用户名的错误 由于网易邮箱用户名与密码的数据自己是看不见的,如何才能像自己建的数据库一样进行验证登录呢 解决方案 你的问题我有点不明白: 首先你通过web页面登录网易时,如果用户名密码不对会有汉字提示. 第二通过javamial如果用户名密码不对,会有验证异常抛出,根据异常信息就能看出来.一般是认证异常.

Java中使用JavaMail多发邮件及邮件的验证和附件实现_java

多发和用户验证下面先来介绍如何实现将邮件发送给多个收件人和如何利用Authenticators对象实现用户验证.   指定收件人的时候,我们可以有两种方法来指定.上篇博客是在发送邮件的时候临时指定收件人,其实还可以在Message对象中指定. message.addRecipient(Message.RecipientType.TO,new InternetAddress(" 995812509@99.com "));          这个只是发送给一个收件人而言,但是有多个收件人如

请教,使用正则表达式实现密码验证

问题描述 有个密码验证 要求最少输入一个数字 一个小写字母 一个大写字母 一起要不少于7位数谢谢. 解决方案 var p = /^((?=.*?[a-z])(?=.*?[A-Z])(?=.*?d).*){7,}$/;解决方案二:A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{7,}z