当前位置:  技术问答>java相关

SMTP 发信通过验证了,可没有发出信怎么回事?附程序 谢谢!!!

    来源: 互联网  发布时间:2015-05-10

    本文导语:  ////////////////////////////////////// ////program: //////////////////////////////////////   public void sendMail() {      try {            displayKey();                  Socket s = new Socket(mailServer, 25);         BufferedReader...

//////////////////////////////////////
////program:
//////////////////////////////////////
  public void sendMail() { 
    try {    
       displayKey();
         
       Socket s = new Socket(mailServer, 25); 
       BufferedReader in = new BufferedReader 
           (new InputStreamReader(s.getInputStream())); 
       BufferedWriter out = new BufferedWriter 
           (new OutputStreamWriter(s.getOutputStream())); 

       send( in, out, "AUTH LOGIN" );
       send( in, out, get64Code("w.hg") );
       send( in, out, get64Code("3213211") ); 
       send(in, out, "MAIL FROM: " + adresser); 
       send(in, out, "RCPT TO: " + recipient); 
       send(in, out, "DATA"); 
       send(out, "Subject: " + subject); 
       send(out, "From: " + adresser); 
       send (out, "n");

       for(int h=0;h = 3) )
{
String sTemp = line.substring( 0, 3 );
try
{
int iTemp = (new Integer( sTemp )).intValue();
if( iTemp == iValue )
return true;
else
{
return false;
}
}
catch( Exception e )
{
return false;
}
}
else
{
return false;
}
}

private String sendData( PrintWriter mailOut, BufferedReader mailIn, String from, String to, String subject, String msg, String conType, String charset )
{
msg = "Date: " + (new java.util.Date()).toString() + "rn"
+ "Content-Type: " + conType + "; charset=" + charset + "rn"
+ "MIME-Version: 1.0 rnrn" + msg;
msg = "From: " + from + "rn" + msg;
msg = "To: " + to + "rn" + msg;
msg = "Subject: " + subject + "rn" + msg;
mailOut.print( msg );
mailOut.print( "rn.rn" );
mailOut.flush();
String line = new String();

try
{
line = mailIn.readLine();
}
catch( IOException e )
{
return null;
}
return line;
}

public String send_EMail()
{
AUTH = isNeedAUTH( host );
try
{
Socket sock;
PrintWriter mailOut;
BufferedReader mailIn;
sock = new Socket( host, 25 );
mailOut = new PrintWriter( sock.getOutputStream(), true);
mailIn = new BufferedReader( new InputStreamReader( sock.getInputStream() ) );
boolean result = false;
String line = mailIn.readLine();
result = recIsCorr( line, 220 );
if( !result )
return "发送失败!";

if( host.equals( "smtp.sina.com.cn" ) )
line = sendCommand( mailOut, mailIn, "EHLO " + host );
else
line = sendCommand( mailOut, mailIn, "HELO " + host );
result = recIsCorr( line, 250 );
if( !result )
if( !recIsCorr( line, 220 ) ) return "发送失败!";

if( AUTH )
{
line = sendCommand( mailOut, mailIn, "AUTH LOGIN" );
line = sendCommand( mailOut, mailIn, get64Code("yourname") );
line = sendCommand( mailOut, mailIn, get64Code("yourpassword") );
}

line = sendCommand( mailOut, mailIn, "MAIL FROM:" + from );
result = recIsCorr( line, 250 );
if( !result )
if( !recIsCorr( line, 235 ) ) return "发送失败!";

line = sendCommand( mailOut, mailIn, "RCPT TO:" + to );
result = recIsCorr( line, 250 );
if( !result )
if ( !recIsCorr( line, 334 ) )
return "发送失败!";

line = sendCommand( mailOut, mailIn, "DATA " );
result = recIsCorr( line, 354 );
if( !result ) 
if( !recIsCorr( line, 334 ) ) 
if( !recIsCorr( line, 250 ) ) return "发送失败!";

line = sendData( mailOut, mailIn, from, to, subject, msg, conType, charset );

result = recIsCorr( line, 250 );
if( !result ) 
if( !recIsCorr( line, 235 ) ) 
if( !recIsCorr( line, 354 ) ) return "发送失败!";

line = sendCommand( mailOut, mailIn, "QUIT" );
result = recIsCorr( line, 221 );
if( !result ) 
if( !recIsCorr( line, 250 ) ) return "发送失败!";

sock.close();
}
catch( IOException e )
{
return "发送失败!";
}
return "发送成功!";
}

private String get64Code( String code32 )
{
String code64 = new sun.misc.BASE64Encoder().encode(code32.getBytes()); 
return code64;
}

private boolean isNeedAUTH( String host )
{
if( host.equals( "smtp.263.net" ) )
return true;
if( host.equals( "smtp.163.net" ) )
return true;
if( host.equals( "smtp.sina.com.cn" ) )
return true;
if( host.equals( "smtp.sohu.com" ) )
return true;

return false;
}
}

这是我的发送原程序,你看看,希望对你有点帮助。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SMTP 错误:无法连接到 SMTP 主机
  • Java的SMTP服务器端类库 SubEtha SMTP
  • 高分:為什麼用smtp.163.net服務器,不能發給smtp.163.com的郵箱用戶,要怎麼做才行
  • 我的代码中已经假如smtp认证,为什么在tomcat上还提示客户端没有验证?使用smtp.sohu.com或smtp.sina.com.cn都不行代码如下:
  • SMTP问题
  • PHP邮件发送类 SMTP client class
  • 获取对方的 smtp server ,最高分求助!
  • 用linux做smtp服务器怎么弄
  • java发送mail,smtp的用户名密码问题
  • SMTP邮件服务器 Postoffice
  • qmail 如何加smtp认证功能?
  • sendmail smtp认证问题
  • [高分求教]Qmail的SMTP认证失效问题
  • Eclipse的SMTP插件 MailSnag
  • SMTP代理 Mireka
  • LINUX的SMTP源代码在哪儿可以下载到!
  • 请教javamail的smtp验证!在线等待
  • JavaMail中props.put("mail.smtp.host", "???")后面的邮件服务器该填什么?
  • SMTP 压力测试工具 MultiMail
  • 灰名单SMTP代理 Spey


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3