<!--

    Copyright (c) 2005, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<p><a id="task-javamailtargets" name="task-javamailtargets"></a><a id="GHJML00013" name="GHJML00013"></a></p>

<h4>To Manage JavaMail Session Targets</h4>
<a name="BEGIN" id="BEGIN"></a>
<ol>
<li>
<p>In the navigation tree, expand the Resources node.</p>
</li>
<li>
<p>Under the Resources node, select JavaMail Sessions.</p>
<p>The JavaMail Sessions page opens.</p>
</li>
<li>
<p>On the Sessions table, click the session name whose targets you want to manage.</p>
<p>The Edit JavaMail Session page opens.</p>
</li>
<li>
<p>Click the Target tab.</p>
<p>The JavaMail Session Targets page opens.</p>
</li>
<li>
<p>In the Targets table, choose the action you want to take:</p>
<ul>
<li>
<p>To add or remove targets, click Manage Targets.</p>
</li>
<li>
<p>To enable a target, click the checkbox next to the desired server instance or cluster and click Enable.</p>
</li>
<li>
<p>To disable a target, click the checkbox next to the desired server instance or cluster and click Disable.</p>
</li>
</ul>
</li>
</ol>
<a id="GHJML105" name="GHJML105"></a>
<h5>See Also</h5>
<ul>
<li>
<p><a href="task-javamailsessioncreate.html">To Create a JavaMail Session</a></p>
</li>
<li>
<p><a href="task-javamailsessionsedit.html">To Edit a JavaMail Session</a></p>
</li>
<li>
<p><a href="task-javamailsessionsdelete.html">To Delete a JavaMail Session</a></p>
</li>
</ul>


<small>Copyright &#169; 2005, 2017, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></small>
