---
title: "JavaMail sessions"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/90336-javamail-sessions"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Viktor"
published: "2003-11-13T14:17:53.000Z"
updated: "2003-11-24T02:41:19.000Z"
replies: 1
views: 255
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/90336-javamail-sessions"
---

# JavaMail sessions

## #1 — Viktor, 2003-11-13T14:17Z

Hej!

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

```
try
{
	Properties props = System.getProperties();
	props.put("mail.smtp.host", "mail.xxxxx.com");
	Session session = Session.getDefaultInstance(props, null);
	MimeMessage message = new MimeMessage(session);
	message.setFrom(new InternetAddress("viktor@xxxxx.com"));
	message.addRecipient(Message.RecipientType.TO,new InternetAddress("viktor@xxxxx.com"));
	message.setSubject("Hello 2222!");
	message.setText("Hello Viktor 2");
	Transport.send(message);
}
catch(AddressException e)
{
	e.printStackTrace(System.err);
}
catch(MessagingException e)
{
	e.printStackTrace(System.err);
}
```

(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>

Men om jag byter raden

```
Session session = Session.getDefaultInstance(props, null);
```

mot

```
Session session = Session.getInstance(props, null);
```

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.

/Viktor

Permalänk: https://www.webforum.nu/p/90336

## #2 — rasmusandersson, 2003-11-24T02:41Z

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".

```php
<Resource name="mail/Session" type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
	<parameter>
		<name>mail.smtp.host</name>
		<value>din.internetleverantor.se</value>
	</parameter>
</ResourceParams>
```

Sedan skapar/länkar man sessionen typ såhär:

```php
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session) envCtx.lookup("mail/Session");
```

Permalänk: https://www.webforum.nu/p/1212835

---

Tråden på webben: https://www.webforum.nu/amne/java/90336-javamail-sessions
