<HTML>

<head>
<TITLE>Unsubscribing from netbeans.org mailing lists</TITLE>
<META NAME="description" CONTENT="How to unsubscribe from netbeans.org mailing lists">
<META NAME="NAV_LINK" content="Unsubscribe">
<META NAME="NAV_PRIORITY" content="3">
<link rel="stylesheet" type="text/css" HREF="../../netbeans.css">
</HEAD>

<body>

<h1>Unsubscribing from NetBeans.org Mailing List</h1>

<h2>To unsubscribe via the web interface</h2>

<div style="float:right;padding:10px" class="feedback-box">
<p><b>Quick Links</b></p>
<a href="mailto:sympa@netbeans.org?subject=unsubscribe%20nbusers"><img src="../../images_www/v4/btn_unsubscribe.gif" alt="Unsubscribe from nbusers" title="Unsubscribe from nbusers" width=63 height=13 border=0></a>&nbsp;from nbusers 
<br><br><a href="mailto:sympa@netbeans.org?subject=unsubscribe%20nbweekly"><img src="../../images_www/v4/btn_unsubscribe.gif" alt="Unsubscribe from nbweekly" title="Unsubscribe from nbweekly" width=63 height=13 border=0></a>&nbsp;from nbweekly
<br><br><a href="mailto:sympa@netbeans.org?subject=unsubscribe%20nbannounce"><img src="../../images_www/v4/btn_unsubscribe.gif" alt="Unsubscribe from nbannounce" title="Unsubscribe from nbannounce" width=63 height=13 border=0></a>&nbsp;from nbannounce
</div>


<ul>
<li>To unsubscribe from top-level lists (such as nbusers, nbdev, and the nbweekly newsletter):
<ol><li>Go to <a href="../../community/lists/top.html">the top-level mailing list page</a>
<li>Scroll to the list name, and click the unsubscribe button.
</ol>
<li>To unsubscribe from project mailing lists (such as nblocalization):
<ol>
    <li>Log on to Netbeans.org and go to <a href="https://netbeans.org/mypage">My Page</a>
    <li>Indentify the Project whose mailing list you want to leave and click its <em>mailing lists</em> link
    <li>On the project mailing lists page, click the Unsubscribe button to leave a list
</ol>
</ul>
</p>

<h2>To unsubscribe by email from a mailing list</h2>

<ol>
    <li>For example, you want to unsubscribe from the email list
        <tt>issues@javaee.netbeans.org</tt>.
        The name of the list is <tt>issues</tt> and the address portion
        is <tt>@javaee.netbeans.org</tt>.<br /><br /></li>
    <li> Address your email to <tt><a href="mailto:sympa@javaee.netbeans.org">sympa@javaee.netbeans.org</a></tt>.<br /><br /></li>
    <li> Add the subject line <tt>unsubscribe issues</tt> and send the email.
        You do not need any message content, just the subject line with the list name in it.<br /><br /></li>
    <li> Wait for a verification email from Sympa (check your spam filter)
    <li> Reply to the email by clicking 'Send' in your email program to confirm.<br /><br /></li>
    <li> Wait for an automated email from Sympa telling you that you have been removed from the email list.
</ol>

<h2>Finding which address you have subscribed</h2>

<p>By far the most common unsubscription problem is attempting to
unsubscribe from an address that is not subscribed, perhaps because it
is different to the one originally subscribed.</p>

<p>If you're not sure which of your email addresses is subscribed, you can
find out by examining the headers of a list message.
<a href="http://wiki.netbeans.org/wiki/view/FaqWhichAddress">See the list FAQ</a>
for details.

<p>If you need help tracking which address you have subscribed to
which list, check out the <a href="query.html">list subscription query</a>.
It will find any subscriptions for a particular address and generate
unsubscribe instructions for each.

<P><h2>Still having trouble?</h2>

<p>Your email program might filter the Sympa messages as spam.
    If that's a possibility, add the Sympa address to your contact list or no-spam list
as required by your email software.</p>

<p>If you've tried all of the above, contact the list owner.  Addresses for
list owners take the form

<P><TT>listname-owner@netbeans.org</TT>

<P>so for example the nbusers list owner address would be

<P><TT>nbusers-owner@netbeans.org</TT>

<p>See also: <a href="https://netbeans.org/projects/help/pages/MailingLists#Subscribing_to_or_Unsubscribing_From_a_List">Help: Unsubscribing From a List</a></p>

</BODY>

</HTML>
