首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SMTP协议和JavaMail api中保存会话

在SMTP协议和JavaMail api中保存会话
EN

Stack Overflow用户
提问于 2021-02-17 10:02:56
回答 1查看 253关注 0票数 1

我开发了一个代表用户发送电子邮件的Java应用程序。

为了避免保存用户密码,我希望存储邮件会话。但是,我看到在Java的SMTP协议的Mail中,实现对发送的每一条消息进行身份验证!

它只是一个implementation,还是在SMTP协议中声明是这样?

我的代码:

我正在使用SMTP API启动JavaMail会话并发送电子邮件,如下所示:

代码语言:javascript
复制
//Set up headers
String from,to...

//Set up authentication
  Properties props = new Properties();  
   props.put("mail.smtp.host",host);  
   props.put("mail.smtp.auth", "true");  

  Session session = Session.getDefaultInstance(props,  
    new javax.mail.Authenticator() {  
      protected PasswordAuthentication getPasswordAuthentication() {  
    return new PasswordAuthentication(user,password);  
      }  
    });  

//Set up message
MimeMessage message = new MimeMessage(session); 
...

//Send message
  Transport.send(message);  

在Transport.send(消息)(在JavaMail api中)中,有以下实现:

代码语言:javascript
复制
try{
  this.Connect()
  this.SendMessage(message)
  this.CloseConnection()
}

我可以在没有transport.SendMessage()的情况下使用transport.CloseConnection(消息)的实现吗?因此,我将保存会话并继续使用它。

SMTP会支持它吗?会议将保留多少时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-20 11:32:40

好像挺好的。而不是使用

代码语言:javascript
复制
Transport.send(message);  

使用:

代码语言:javascript
复制
Transport transport = message.getTransport(address);
try{
   transport.connect();
}catch (Exception e){
   //already connected
}
transport.sendMessage(message);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66239672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档