java mail 发邮件连接不上smtp服务器怎么办啊

liul17 2006-07-28 04:52:32
错误提示:
DEBUG: setDebug: JavaMail version 1.3
1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true

DEBUG: SMTPTransport trying to connect to host "smtp.163.com", port 25

javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect

源码:
package tvguide.user;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class SendMail
{
private String host=null;
private String from=null;
private String username=null;
private String password=null;
private String subject=null;
private String content=null;
public SendMail()
{
host=null;
from=null;
username=null;
password=null;
subject=null;
content=null;
}
public void setHost(String str)//设置邮件服务器。
{
this.host=str;
}
public String getHost()
{
return this.host;
}
public void setFrom(String str)//设置发送地址
{
this.from=str;
}
public String getFrom()
{
return this.from;
}
public void setUsername(String str)//设置登陆名
{
this.username=str;
}
public String getUsername()
{
return this.username;
}
public void setPassword(String str)//设置登陆密码
{
this.password=str;
}
public String getPassword()
{
return this.password;
}
public void setSubject(String str)//设置主题
{
this.subject=str;
}
public String getSubject()
{
return this.subject;
} public void setContent(String str)//设置内容
{
this.content=str;
}
public String getContent()
{
return this.content;
}

public String[] getTo(String str)//获取多发邮件的地址,每2个邮件用逗号隔开。
{
char temp[]=str.toCharArray();
int num=0;
if(str!=null&&!str.equals(""))
num=1;
else
return null;
for(int i=0;i<temp.length;i++)//确定一共有多少个邮件地址
{
if(temp[i]==',')
num++;
}
System.out.println(num);
String []To=new String [num];
To[0]="";
int j=0;
for(int i=0;i<temp.length;i++)
{
if(temp[i]==',')
{
j=j+1;
i=i+1;
To[j]="";
}
To[j]+=temp[i];
}
return To;
}
public boolean SendMailto(String tto)//发送邮件。
{
try
{
// Get system properties
Properties props = new Properties();
// Setup mail server
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true"); //这样才能通过验证
// Get session
Session session = Session.getDefaultInstance(props);

// watch the mail commands go by to the mail server
session.setDebug(true);

// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
String to[]=getTo(tto);
for(int i=0;i<to.length;i++)
{
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to[i]));
}
message.setSubject(this.subject);
message.setText(this.content);
// Send message
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host,username,password);
transport.sendMessage(message, message.getAllRecipients());
//close transport
transport.close();
return true;
}
catch(MessagingException m)
{
System.out.println(m.toString());
return false;
}
}
public static void main(String []args)
{
SendMail mail=new SendMail();
mail.setContent("This is a test!");
mail.setFrom("1_test@163.com ");
mail.setHost("smtp.163.com");
mail.setUsername("1_test");
mail.setSubject("Test");
mail.setPassword("123456789");
mail.SendMailto("1_test@163.com");
}

}

另外,我一共引了两个包:mail.jar , activation.jar





...全文
611 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyy6 2006-08-05
  • 打赏
  • 举报
回复
设置本机dns.
问题是smtp.163.com转不成ip
kaoloveting 2006-07-29
  • 打赏
  • 举报
回复
study
hefei0603 2006-07-29
  • 打赏
  • 举报
回复
你关掉WIDOWS防火墙后能成功吗?
yexiaoying 2006-07-28
  • 打赏
  • 举报
回复
完全没问题 谢谢你的代码
liul17 2006-07-28
  • 打赏
  • 举报
回复
哪的 25端口?
rlqiang 2006-07-28
  • 打赏
  • 举报
回复
25端口开了没有?
先把防火墙去了再试试
liul17 2006-07-28
  • 打赏
  • 举报
回复
to hefei0603(风雨) : 你有msn吗 能告诉我下吗  我这就是发不出去  真是急啊!
liul17 2006-07-28
  • 打赏
  • 举报
回复
我是在jbuilder2005中用 这两个包我都已经引入工程了

这是提示


D:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "D:\src\tvguide\classes;D:\Tomcat 5.0\common\lib\servlet-api.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\common\lib\servlet-api.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\common\lib\jsp-api.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-beanutils.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-collections.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-digester.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-fileupload.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-lang.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-logging.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\commons-validator.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\jakarta-oro.jar;D:\Borland\JBuilder2005\thirdparty\jakarta-struts-1.1-lib\struts.jar;D:\src\tvguide\WebModule1\WEB-INF\lib\mail.jar;D:\src\tvguide\WebModule1\WEB-INF\lib\activation.jar;D:\Borland\JBuilder2005\jdk1.4\bin\SHOCK.jar;D:\Borland\JBuilder2005\jdk1.4\jre\bin\SHOCK.jar;D:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;D:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" tvguide.user.SendMailBean
javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:911)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:158)

at javax.mail.Service.connect(Service.java:233)

at javax.mail.Service.connect(Service.java:134)

at tvguide.user.SendMailBean.sendMail(SendMailBean.java:74)

at tvguide.user.SendMailBean.main(SendMailBean.java:24)DEBUG: setDebug: JavaMail version 1.3

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]

DEBUG SMTP: useEhlo true, useAuth true


DEBUG: SMTPTransport trying to connect to host "smtp.163.com", port 25


失败
hefei0603 2006-07-28
  • 打赏
  • 举报
回复
你用的代码就是我以前写的,现在看来好多地方都能简单化的。
hefei0603 2006-07-28
  • 打赏
  • 举报
回复
没有问题啊!我把你的程序执行了2次。。应该有收到吧!
我想应该是你javamail买配置好。你将mail.jar , activation.jar这两个包放到J2SDK\jre\lib\ext中去
sunshine5246 2006-07-28
  • 打赏
  • 举报
回复
up
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧