Varje gång en användare rörsig mellan olika mappar (IMAP mail mappar) i min webmail så anroppars först openConnection och sedan closeConnection när den är klar med mappen (delfråga, eller ska man köra med öppen hela tiden??)
public Store openConnection()
throws NoSuchProviderException, MessagingException
{
Properties props=new Properties();
Session session=Session.getDefaultInstance(props,null);
Store store=session.getStore(getPostOffice("protocol"));
store.connect(getPostOffice("host"),Integer.parseInt(getPostOffice("port")),username,password);
return(store);
}
public void closeConnection(Store store)
throws MessagingException
{
if((store!=null)&&(store.isConnected()))
store.close();
}
det fungerar perfekt, jag kan vandra runt hur mycket jag vill utan problem. När jag nu ska skicka ett mail så har jag skrivit såhär
(test kod bara)
om jag kör sänd koden ensam så fungerar den perfekt, men om jag kör den EFTER att jag har varit inne i en mapp (kört den första koden) så får jag detta felmedelande
javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
javax.mail.SendFailedException: 550 5.7.1 Unable to relay for viktor@xxxxxx.com
så fungerar det perfekt igen, någon som kan berätta varför det inte går att använda det gammla session objektet när jag ska skicka men det går att använda det flera gånger när jag ska kolla i mapparna.
Om du kör Tomcat så kan du lägga in en fast mail-session i en kontext. Kör du Tomcat 5, kan du lägga nedan kod i "<TOMCAT>/conf/Catalina/localhost/<DINWEBAPP>.xml".