使用javamail发送完邮件后怎样在程序中做一些清理工作?

felix1999 2005-05-29 07:44:02
发送一切正常,可是如果频繁使用此程序发信时,就会有错误信息,意思大概是说有太多的连接连向了邮件服务器,是不是应该在发信程序的结尾做一些清理工作,类似于关闭数据连接的意思,如何做?谢谢!
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Runningboy007 2005-06-13
  • 打赏
  • 举报
回复
import javax.mail.internet.*;

/**
* @author Bromon
*/
public class SenderWithSMTPVer
{
String host="";
String user="";
String password="";

public void setHost(String host)
{
this.host=host;
}

public void setAccount(
String user,String password)
{
this.user=user;
this.password=password;
}

public void send(String from,String to, String subject,String content)
{
Properties props = new Properties();
props.put("mail.smtp.host", host);
//指定SMTP服务器
props.put("mail.smtp.auth", "true");
//指定是否需要SMTP验证
try
{
Session mailSession = Session.getDefaultInstance(props);

mailSession.setDebug(true);
//是否在控制台显示debug信息

Message message=new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));
// //发件人
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// //收件人

message.setSubject(subject);
//邮件主题
message.setText(content);
//邮件内容
message.saveChanges();

Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch(Exception e)
{
System.out.println(e);
}

}

public static void main(String args[])
{
SenderWithSMTPVer sm=new SenderWithSMTPVer();

String content ;
content = "";
sm.setHost("smtp.163.com");
//指定要使用的邮件服务器
sm.setAccount("","");
//指定帐号和密码

/*
* @param String 发件人的地址
* @param String 收件人地址
* @param String 邮件标题
* @param String 邮件正文
*/
sm.send("","","test",content);
}

}

上面是发邮件的源代码 我不知道你怎么写的
transport.close(); 应该是做清理工作的吧
felix1999 2005-06-09
  • 打赏
  • 举报
回复
自己顶
felix1999 2005-05-30
  • 打赏
  • 举报
回复
下面是错误信息
java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:175)
at mailsentservlet.doPost(mailsentservlet.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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