使用javamail发送SMTP验证邮件

现在很多邮件服务器都需要进行验证,本文使用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 >
  主题:
&nbsp;&nbsp; < 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);

你可能感兴趣的:(html,jsp)