Java Mail API 问题 - setting the smtp provider请高手指教(C/S,R5)

swallowljh 2004-03-17 10:39:15
我写一个java agent,使用java mail api向外网邮件系统发送一封邮件但是当我调用这个代理的时候,产生了一个错误.

javax.mail.NoSuchProviderException: No provider for smtp
at javax.mail.Session.getProvider(Session.java:249)
at javax.mail.Session.getTransport(Session.java:442)
at javax.mail.Session.getTransport(Session.java:423)
at SendMail.Send(SendMail.java:53)
at JavaAgent.NotesMain(JavaAgent.java:22)
at lotus.domino.AgentBase.runNotes(AgentBase.java:160)
at lotus.domino.NotesThread.run(NotesThread.java:203)

下面是代理的核心代码:

import java.io.PrintStream;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail

{
public SendMail()

{

}
public boolean Send(String s, Vector vector, String s1, String s2)

{

try

{

Properties properties = new Properties();

Session session = Session.getInstance(properties, null);

properties.put("mail.smtp.host", "");

properties.put("mail.smtp.auth", "true");

MimeMessage mimemessage = new MimeMessage(session);

mimemessage.setFrom(new InternetAddress(s));

mimemessage.setSubject(s1);

mimemessage.setSentDate(new Date());

mimemessage.setText(s2);

Transport transport = session.getTransport("smtp");

System.out.println("smtp!");

transport.connect("smtp服务器", 25, "user", "password");

for(int i = 0; i < vector.size(); i++)

{

String s3 = (String)vector.elementAt(i);

if(s3 != null && !s3.equals(""))

{

InternetAddress internetaddress = new InternetAddress(s3);

mimemessage.setRecipient(javax.mail.Message.RecipientType.TO, internetaddress);

transport.sendMessage(mimemessage, mimemessage.getAllRecipients());

}

}
transport.close();
return true;
}
catch(Exception e)

{
e.printStackTrace();
// System.out.println(messagingexception.toString());

}

return false;

}

}

使用编辑项目按钮我添加了mail.jar,activation.jar 和 the smtp.jar 尽管我不知道SMTP.JAR是否有用。 javauserclasses已经设置。

说明:该程序在R6下运行正常,R5下是否还需要其它配置,请高手指点不胜感激!
...全文
670 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
swallowljh 2004-03-22
  • 打赏
  • 举报
回复
大家帮帮忙忙啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
swallowljh 2004-03-21
  • 打赏
  • 举报
回复
to WuZeming(mfrog)

写一个类继承Authenticator,实现getPasswordAuthentication方法,然后在 Session.getInstance第二个参数时使用该类的一个实例
请问如何实现getPasswordAuthentication方法,代码该怎么写呢。
能给出源代码吗?非常感激!!!!!!

WuZeming 2004-03-19
  • 打赏
  • 举报
回复
试试写一个类继承Authenticator,实现getPasswordAuthentication方法,然后在 Session.getInstance第二个参数时使用该类的一个实例看看行不行。

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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