<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>Mailing Lists</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&orig=%2F">Shop smile.amazon.com</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="/travel/">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div class="input-group" style="width: 100%; padding: 0 5px;">
                    <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script>
                    <div class="gcse-search"></div>
                  </div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">
      <h2 class="text-center">Community-led development "The&nbsp;Apache&nbsp;Way"</h2>
      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
    <div class="sideImg">
      <a href="/foundation/contributing.html"><img class="img-responsive" src="/img/support-apache.jpg" alt="Apache Support Logo" /></a>
    </div>
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="mailing-lists">Mailing Lists<a class="headerlink" href="#mailing-lists" title="Permalink">&para;</a></h1>
<p>Publicly archived mailing lists are critical to the operation of the Apache Software
Foundation (ASF) and to our many <a href="http://projects.apache.org/">Apache
Projects</a>.  Apache projects use mailing lists to coordinate
development of their software and administer their organization. Mailing
lists also serve as a primary support channel where users can help each
other learn to use the software.</p>
<p>Mailing list participants are expected to abide by the well-established rules of
"netiquette", as well as the ASF's published <a href="/foundation/policies/conduct.html">Code of Conduct</a>.
We also have <a href="../dev/contrib-email-tips.html">Tips for email
contributors</a>.</p>
<p>Please be aware that email sent to Apache developer or user mailing lists is subject to our
<a href="public-archives.html">Public Forum Archive Policy</a>.</p>
<p>Note that some Apache mailing lists are not public; they are often but not always named
<strong>private@</strong>. Be sure not to take emails from private discussions or mailing lists
into a public forum or list unless there is agreement by all parties to the conversation.</p>
<h2 id="moderation-of-posts">Moderation of posts<a class="headerlink" href="#moderation-of-posts" title="Permalink">&para;</a></h2>
<p>Most lists require a poster to be subscribed.
If you are not subscribed, your post requires moderation.
This may take hours or days, so it's best to subscribe (as described below) before posting.</p>
<h2 id="subscribing">Subscribing and Unsubscribing<a class="headerlink" href="#subscribing" title="Permalink">&para;</a></h2>
<p>Unless otherwise noted, ASF lists are managed by
<a href="http://untroubled.org/ezmlm/">ezmlm</a>, which lets users subscribe or unsubscribe by sending an email to a special address.
This works as follows:</p>
<ul>
<li>Send the request to the appropriate address (see below)</li>
<li>ezmlm sends a reply; either a confirmation request or an error message (e.g. if you are not subscribed)</li>
<li>Reply to the confirmation message</li>
</ul>
<p>ASF committers can also use the Whimsy <a href="https://whimsy.apache.org/committers/subscribe">Mailing List Self-subscription</a> service.</p>
<h2 id="request-addresses-for-unsubscribing">Request addresses for [un]subscribing<a class="headerlink" href="#request-addresses-for-unsubscribing" title="Permalink">&para;</a></h2>
<p>If you want to subscribe
to <code><em>list</em>@apache.org</code>, you need to send a message to</p>
<pre>
<em>list</em>-subscribe@apache.org
</pre>
<p>To get off a list, send a message to</p>
<pre>
<em>list</em>-<b>un</b>subscribe@apache.org
</pre>
<p>To unsubscribe a different e-mail - e.g.
you used to be subscribed as <strong><code>user@oldname.example</code></strong> - send a message
to</p>
<pre>
<em>list</em>-unsubscribe-<b>user=oldname.example</b>@apache.org
</pre>
<p><em>The list moderators can also do this.</em></p>
<p>If you do not recall the address you used when you subscribed, view the full headers
of any email you received from the list and examine the <code>Return-Path</code>,
<code>Received</code>, and <code>List-ID</code> headers; these should embed both the address you are
subscribed as and the address of the mailing list.</p>
<p>Note: Spam filters don't like messages with empty Subjects; just put
"subscribe" or "unsubscribe" in the header field. Spam filters are also more likely to reject
HTML-formatted messages; please use plain text.</p>
<h2 id="request-confirmation">Request confirmation<a class="headerlink" href="#request-confirmation" title="Permalink">&para;</a></h2>
<p>After you send the subscribe or unsubscribe request, the list manager
sends you a confirmation e-mail in reply. <strong>You must reply to this e-mail to
complete the process.</strong> If you have not received the confirmation request,
check that it has not been marked as spam.</p>
<p><strong>Note: private lists generally require a moderator to confirm the subscription</strong>.
This may take a day or two. If necessary, try again after a few days.
For this reason we recommend that ASF and PMC members use
<a href="https://whimsy.apache.org/committers/subscribe">the self-subscribe app</a> to avoid having to wait for the human moderators to check and green-light your subscription request.</p>
<h2 id="other-list-commands">Other list commands<a class="headerlink" href="#other-list-commands" title="Permalink">&para;</a></h2>
<p>To find out more about a list's features, including how to contact the list owner (moderator),
send a message to</p>
<pre>
<em>list</em>-help@apache.org
</pre>
<p>Ezmlm lists also generally provide subscribers with a way to request
specific past messages or ranges of messages: send mail to the list's help
address to find out more. This can act as a sort of 'poor man's archive' if
the normal archives are inaccessible or don't exist.</p>
<p>All ASF committers can get a list of (a) what email addresses are known to the
ASF as belonging to them (b) what mailing lists they are moderating, and (c)
what mailing lists they are subscribed to by going to the following page:</p>
<p><a href="https://whimsy.apache.org/roster/committer/__self__">https://whimsy.apache.org/roster/committer/__self__</a></p>
<h2 id="digest-subscriptions">Digest Subscriptions<a class="headerlink" href="#digest-subscriptions" title="Permalink">&para;</a></h2>
<p>You can also subscribe to most mailing lists in digest form. To do this for <tt><em>list</em>@apache.org</tt>, send a message to</p>
<pre>
<em>list</em>-digest-subscribe@apache.org
</pre>
<p>To get off a digest list, send a message to</p>
<pre>
<em>list</em>-digest-<b>un</b>subscribe@apache.org
</pre>
<p>If you need to unsubscribe a different email or get help with a digest list the same instructions as for subscribing/unsubscribing
above apply. Just remember to add <em>-digest</em> after the list name and before the <em>-subscribe</em> or <em>-unsubscribe</em>.</p>
<h2 id="moderators">Moderators<a class="headerlink" href="#moderators" title="Permalink">&para;</a></h2>
<p>Each mailing list generally has several moderators who look after the list.
For further information, see the
<a href="/dev/committers.html#mail">Committers FAQ - Mail Questions</a></p>
<h2 id="archives">Mailing List Archives<a class="headerlink" href="#archives" title="Permalink">&para;</a></h2>
<p>Archives for public mailing lists are available at a number of locations,
including:</p>
<ul>
<li>
<p><a href="https://lists.apache.org/">Apache mail archives</a></p>
</li>
<li>
<p><a href="http://apache.markmail.org/">MarkMail</a></p>
</li>
<li>
<p><a href="http://marc.info/">MARC</a></p>
</li>
<li>
<p><a href="http://mail-archive.com/">mail-archive.com</a></p>
</li>
</ul>
<h2 id="project-mailing-lists">Project Mailing Lists<a class="headerlink" href="#project-mailing-lists" title="Permalink">&para;</a></h2>
<p>Links to project-specific mailing list info can be found on the <a href="http://projects.apache.org/projects.html">project
resources page</a>.</p>
<p>Tip: if you have a technical question of any kind, the best place to ask is the
user@ or dev@ list for the relevant project - Foundation level mailing lists
or other Apache contact emails (including individuals' emails) will not be able to help you</p>
<h2 id="foundation-wide-mailing-lists">Foundation-wide Mailing Lists<a class="headerlink" href="#foundation-wide-mailing-lists" title="Permalink">&para;</a></h2>
<ul>
<li>
<p><a href="#foundation-announce">Apache News and Announcements</a></p>
</li>
<li>
<p><a href="#foundation-apachecon">Conference Announcements list</a></p>
</li>
<li>
<p><a href="#foundation-community">Community discussions</a></p>
</li>
<li>
<p><a href="#foundation-infrastructure">Infrastructure assistance</a></p>
</li>
<li>
<p><a href="#foundation-legal">Legal discussions</a></p>
</li>
</ul>
<h2 id="foundation-announce">Apache News and Announcements<a class="headerlink" href="#foundation-announce" title="Permalink">&para;</a></h2>
<p>The Apache Announcements list contains news and announcements about the
foundation and its projects. It includes announcements of major software releases, new
projects, and other important news. This list only includes Messages posted by the Foundation; there is no discussion.</p>
<p>You may also be interested in
our official <a href="https://twitter.com/TheASF">@TheASF Twitter</a> account, or the
<a href="https://blogs.apache.org/foundation/">official ASF Blog</a>.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Low</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:announce-subscribe@apache.org">announce-subscribe@apache.org</a></td>
</tr>
<tr>
<td>Unsubscription address:</td>
<td><a href="mailto:announce-unsubscribe@apache.org">announce-unsubscribe@apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td><a href="http://lists.apache.org/list.html?announce@apache.org">Web archives</a><br/><a href="http://www.mail-archive.com/announce@apache.org/">archives</a></td>
</tr>
<tr>
<td>Getting help with the list:</td>
<td><a href="mailto:announce-help@apache.org">announce-help@apache.org</a></td>
</tr></tbody></table>
<h2 id="foundation-apachecon">Apache Conference Announcements<a class="headerlink" href="#foundation-apachecon" title="Permalink">&para;</a></h2>
<p>The Apache Conference planning committee uses the <code>announce@ApacheCon.Com</code> mailing list to make announcements about conferences, conventions,
and trade shows in which the Foundation is participating. Only the Foundation posts Messages on this list; there is no discussion.</p>
<p>You may also be interested in our official <a href="https://twitter.com/ApacheCon">@ApacheCon Twitter</a> account, or the
<a href="https://blogs.apache.org/conferences/">official ApacheCon Conferences blog</a>.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Very low</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:announce-subscribe@ApacheCon.Com">announce-subscribe@ApacheCon.Com</a></td>
</tr>
<tr>
<td>Unsubscription address:</td>
<td><a href="mailto:announce-unsubscribe@ApacheCon.Com">announce-unsubscribe@ApacheCon.Com</a></td>
</tr>
<tr>
<td>Archives:</td>
<td>Available back to 13 October 1999. Send a message to <a href="mailto:announce-help@ApacheCon.Com">announce-help@ApacheCon.Com</a> for information about accessing the archives.</td>
</tr>
<tr>
<td>Getting help with the list:</td>
<td><a href="mailto:announce-help@ApacheCon.Com">announce-help@ApacheCon.Com</a></td>
</tr></tbody></table>
<h2 id="foundation-apachecon-discuss">Apache Conference Planning and Discussions<a class="headerlink" href="#foundation-apachecon-discuss" title="Permalink">&para;</a></h2>
<p>The <code>apachecon-discuss@apache.org</code> mailing list is for discussions of the future of ApacheCon, and future
ApacheCons. (Discussions of current and upcoming ApacheCons which have been approved occur on other lists.)</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Moderate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:apachecon-discuss-subscribe@apache.org">apachecon-discuss-subscribe@apache.org</a></td>
</tr>
<tr>
<td>Unsubscription address:</td>
<td><a href="mailto:apachecon-discuss-unsubscribe@apache.org">apachecon-discuss-unsubscribe@apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td><a href="http://lists.apache.org/list.html?apachecon-discuss@apache.org">Web archives</a></td>
</tr>
<tr>
<td>Getting help with the list:</td>
<td><a href="mailto:apachecon-discuss-help@apache.org">apachecon-discuss-help@apache.org</a></td>
</tr></tbody></table>
<p>The <code>small-events-discuss@apache.org</code> mailing list is for discussions on future small events, such as
BarCampApaches, Meetups, Retreats and Hackathons. It is for discussing and planning small events that are
not yet ready to seek final approval.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Moderate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:small-events-discuss-subscribe@apache.org">small-events-discuss-subscribe@apache.org</a></td>
</tr>
<tr>
<td>Unsubscription address:</td>
<td><a href="mailto:small-events-discuss-unsubscribe@apache.org">small-events-discuss-unsubscribe@apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td><a href="http://lists.apache.org/list.html?small-events-discuss@apache.org">Web archives</a></td>
</tr>
<tr>
<td>Getting help with the list:</td>
<td><a href="mailto:small-events-discuss-help@apache.org">small-events-discuss-help@apache.org</a></td>
</tr></tbody></table>
<h2 id="foundation-community">Community Mailing List<a class="headerlink" href="#foundation-community" title="Permalink">&para;</a></h2>
<p>Participants in the ASF use the <code>dev@community.apache.org</code> mailing list to discuss community-related foundation-wide
topics. Participation in this list is open to everyone, and public archives
are available.</p>
<p>This replaces the old <code>community@a.o</code>mailing list, disabled in 2014.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Moderate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:dev-subscribe@community.apache.org">dev-subscribe@community.apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td><a href="https://lists.apache.org/list.html?dev@community.apache.org">Web archives</a></td>
</tr></tbody></table>
<h2 id="foundation-infrastructure">Foundation Infrastructure Mailing List<a class="headerlink" href="#foundation-infrastructure" title="Permalink">&para;</a></h2>
<p>The ASF Infrastructure team uses the <code>users@infra.apache.org</code> mailing list to discuss issues concerning operation of the
overall Apache Software Foundation systems. Only committers to ASF projects can participate in this list.
Non-committers may send mail to this address to report problems with ASF
systems, however see the notes about <a href="https://infra.apache.org/stats.html" target="_blank">system status</a> before
you do. See also information about other ways to <a href="https://infra.apache.org/contact.html" target="_blank">contact Infra</a>.</p>
<h2 id="foundation-repository">Repository Mailing List<a class="headerlink" href="#foundation-repository" title="Permalink">&para;</a></h2>
<p>Use the <code>repository@apache.org</code> mailing list to discuss
foundation-wide issues relating to software distribution repositories, including
our Apache Maven repository of other software releases. Participation in this list is open to everyone, and public archives
are available.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Moderate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:repository-subscribe@apache.org">repository-subscribe@apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td><a href="https://lists.apache.org/list.html?repository@apache.org">Web archives</a></td>
</tr></tbody></table>
<h2 id="foundation-legal">Foundation Legal Discussion Mailing List<a class="headerlink" href="#foundation-legal" title="Permalink">&para;</a></h2>
<p>The <code>legal-discuss@apache.org</code> is a forum for questions (even FAQs) that
have a legal aspect. These questions may concern (for example)
licensing, third party packages, contributor agreement questions and
trademark issues. This list will build into an ad-hoc knowledge base about
those thorny legal issues that most commonly effect Apache projects. Please
keep speculation to a minimum and avoid making authoritative statements
without genuine knowledge of the subject.</p>
<p>Volunteers willing to codify discussions into a FAQ are welcome.</p>
<table class="table">
<thead>
<tr>
<th>Volume:</th>
<th>Moderate</th>
</tr>
</thead>
<tbody>
<tr>
<td>Subscription address:</td>
<td><a href="mailto:legal-discuss-subscribe@apache.org">legal-discuss-subscribe@apache.org</a></td>
</tr>
<tr>
<td>Unsubscription address:</td>
<td><a href="mailto:legal-discuss-unsubscribe@apache.org">legal-discuss-unsubscribe@apache.org</a></td>
</tr>
<tr>
<td>Archives:</td>
<td>Raw gzipped <a href="/mail/legal-discuss/">mbox files</a><br/><a href="http://lists.apache.org/list.html?legal-discuss@apache.org">Web archives</a></td>
</tr></tbody></table>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="/travel/">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="/foundation/policies/privacy.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery-2.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>