使用javamail发送SMTP验证邮件

    技术2022-05-11  24

    现在很多邮件服务器都需要进行验证,本文使用javamail1.4使用需要验证的smtp 发送邮件,作者使用smtp.126.com测试成功,但使用smtp.tom.com提示发送成功,但总接受不到,可能根对方smtp有关系

    验证类:

    package  com.test.auth; import  javax.mail.Authenticator; import  javax.mail.PasswordAuthentication; public   class  Authentic  extends  Authenticator  {    protected PasswordAuthentication getPasswordAuthentication() {          String username = "1111";    //大多数是你邮件@前面的部分          String pwd = "22222";          return new PasswordAuthentication(username, pwd);         }}

     

    发送页面:其中from中的邮箱地址要和验证类中设置的用户名、密码统一起来

    <% @ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030" %> <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta  http-equiv ="Content-Type"  content ="text/html; charset=GB18030" > < title > Insert title here </ title > </ head > < body > < form  name ="sendmail"  action ="javamail.jsp"  method ="post" >   发信人: < input  type ="text"  name ="from" />< br >   收件人: < input  type ="text"  name ="recieve" />< br >   主题:    < input  type ="text"  name ="subject" />< br >   内容: < textarea  name ="content"  cols =40  rows =5 ></ textarea >< br >    < input  type ="submit"  value ="发送" >    </ form > </ body > </ html >

    发送代码(JSP实现):

     

    <% @ page import="javax.mail.*"  %> <% @ page import="javax.mail.internet.*"  %> <% @ page import="javax.activation.*"  %> <% @ page import="java.util.*,java.io.*"  %> <% @ page import="com.test.auth.*"  %> <% @ page contentType="text/html;charset=GB2312"  %> < html > < head >    < title > CH17 - JavaMail.jsp </ title > </ head > < body > < h2 > 利用JavaMail来传送电子邮件  </ h2 > <%     InternetAddress[] address = null;    request.setCharacterEncoding("GB2312");    String mailserver   = "202.108.5.142";  //最好写IP    String From         = request.getParameter("from");    String to           = request.getParameter("recieve");    String Subject      = request.getParameter("subject");    String messageText  = request.getParameter("content");        boolean sessionDebug = false;    try {  // 设定所要用的Mail 服务器和所使用的传输协议  java.util.Properties props = System.getProperties();  props.put("mail.host",mailserver);  props.put("mail.transport.protocol","smtp");  props.put("mail.smtp.auth""true");  // 产生新的Session 服务     Authentic auth = new Authentic(); Session mailSession = Session.getDefaultInstance(props, auth);  mailSession.setDebug(sessionDebug);  Message msg = new MimeMessage(mailSession);    // 设定传送邮件的发信人  msg.setFrom(new InternetAddress(From));    // 设定传送邮件至收信人的信箱  address = InternetAddress.parse(to,false);  msg.setRecipients(Message.RecipientType.TO, address);  // 设定信中的主题   msg.setSubject(Subject);  // 设定送信的时间  msg.setSentDate(new Date());    // 设定传送信的MIME Type  msg.setText(messageText);    // 送信    Transport.send(msg);  out.println("邮件已顺利传送");    }    catch (MessagingException mex) {      mex.printStackTrace();    } %> </ body > </ html > 如需要发送html格式邮件,只需修改   Multipart mp=new MimeMultipart();   MimeBodyPart mbp=new MimeBodyPart();    mbp.setContent(messageText,"text/html;charset=gb2312");  mp.addBodyPart(mbp);  msg.setContent(mp);

    最新回复(0)