<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Mailing Lists</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce-2021.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/mail.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <h1 id="mailing-lists">Mailing Lists</h1>
<p>A mailing list is an electronic discussion forum that anyone can subscribe to. When someone sends an email message 
to the mailing list, a copy of that message is broadcast to everyone who is subscribed to that mailing list. Mailing 
lists are the primary means of communication for people working within the Apache Struts Project.</p>

<p><strong>HEADS UP!</strong></p>

<p class="alert alert-block alert-error">A message sent to a public mailing list cannot be unpublished. Although we might be able to modify our own mail archives, 
the message is mirrored to a lot of other archiving systems which we do not have under control. Therefore almost 100% 
of all delete requests are denied. Please make sure you <strong>do not send any potential sensitive information to the mailing list</strong>,
including passwords, server names, ips and so on.</p>

<h2 id="subscribing">Subscribing</h2>

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Subscribe</th>
      <th>Unsubscribe</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://lists.apache.org/list.html?announcements@struts.apache.org">Struts-Announcements</a></td>
      <td><a href="mailto:announcements-subscribe@struts.apache.org?subject=subscribe&amp;body=subscribe">announcements-subscribe@struts.apache.org</a></td>
      <td><a href="mailto:announcements-unsubscribe@struts.apache.org?subject=unsubscribe&amp;body=unsubscribe">announcements-unsubscribe@struts.apache.org</a></td>
      <td>Major Announcements, low-volume, read only</td>
    </tr>
    <tr>
      <td><a href="https://lists.apache.org/list.html?user@struts.apache.org">Struts-User</a></td>
      <td><a href="mailto:user-subscribe@struts.apache.org?subject=subscribe&amp;body=subscribe">user-subscribe@struts.apache.org</a></td>
      <td><a href="mailto:user-unsubscribe@struts.apache.org?subject=unsubscribe&amp;body=unsubscribe">user-unsubscribe@struts.apache.org</a></td>
      <td>Contact to other Struts-users and ask questions on installation or features</td>
    </tr>
    <tr>
      <td>Users Digest</td>
      <td><a href="mailto:user-digest-subscribe@struts.apache.org?subject=subscribe&amp;body=subscribe">user-digest-subscribe@struts.apache.org</a></td>
      <td><a href="mailto:user-digest-unsubscribe@struts.apache.org?subject=unsubscribe&amp;body=unsubscribe">user-digest-unsubscribe@struts.apache.org</a></td>
      <td>Get a daily digest of the Struts Users list</td>
    </tr>
  </tbody>
</table>

<p class="alert alert-success">You can use a web interface as well if you want to post a question <a href="https://lists.apache.org/list.html?user@struts.apache.org">https://lists.apache.org/</a></p>

<p>You can read the <a href="http://mail-archives.apache.org/mod_mbox/struts-user">ASF Mail</a> or the <a href="http://markmail.org/list/org.apache.struts.users">Mark Mail</a>
Archives if you are looking for older discussions. There are many other archives out there as well.</p>

<p class="alert alert-success">If you want to <strong>discuss patches or contribute to Struts</strong> you should subscribe to the <a href="dev-mail.html">developers list</a>.</p>

<h2 id="guidelines">Guidelines</h2>

<p>Mailing lists provide a simple and effective communication mechanism. With potentially thousands of subscribers, there 
is a common set of etiquette guidelines that you should observe. Please keep on reading.</p>

<p><strong>Join the lists that are appropriate for your discussion.</strong></p>

<p class="alert alert-box alert-error">Please make sure that you are joining the list that is appropriate for the topic or product that you would like to discuss. 
For example, please do not join the Struts mailing list and ask questions about Tomcat. Instead, you should join the Tomcat 
User list and ask your questions there.</p>

<h3 id="respect-the-mailing-list-type">Respect the mailing list type</h3>

<p>The “User” list is where you can send questions and comments about configuration, setup, usage and other “user” 
types of questions. The focus of the user list should be one “how” to do something with the framework we have today.
The focus of the dev list is how we want to do something with a future version of the framework.</p>

<p>The “Developer” (or “Dev”) list is where you can send questions and comments about the actual software source code 
and general “development” types of questions. Questions about the “future” of Struts are best addressed to the dev list.</p>

<p>Some questions may seem appropriate for posting on both the “user” and the “developer” lists. In this case, pick one 
and only one. Do not cross post, unless a Committer asks that the thread be moved to the other list.</p>

<h3 id="do-not-cross-post-messages">Do not cross post messages.</h3>

<p>In other words, pick a mailing list and send your messages to that mailing list only. Do not send your messages to multiple 
mailing lists. The reason is that people may be subscribed to one list and not to the other. Therefore, some people will 
only see part of the conversation.</p>

<h3 id="watch-where-you-are-sending-email">Watch where you are sending email.</h3>

<p>The majority of our mailing lists have set the Reply-To to go back to the list. That means that when you Reply to a message, 
it will go to the list and not to the original author directly. The reason is because it helps facilitate discussion 
on the list for everyone to benefit from. Be careful of this as sometimes you may intend to reply to a message directly 
to someone instead of the entire list.</p>

<h3 id="do-not-send-htmlemails-to-the-list">Do not send HTML emails to the list.</h3>

<p>If you are using Outlook or Outlook Express or Eudora, chances are that you are sending HTML email by default. There is 
usually a setting that will allow you to send “Plain Text” email.</p>

<h3 id="keep-your-email-short-and-to-the-point">Keep your email short and to the point.</h3>

<p>If your email is more than about a page of text, chances are that it won’t get read by very many people. It is much better 
to try to pack a lot of informative information (see above about asking smart questions) into as small of an email as possible. 
If you are replying to a previous email, it is a good idea to only quote the parts that you are replying to and to remove 
the unnecessary bits. This makes it easier for people to follow a thread as well as making the email archives easier 
to search and read.</p>

<h3 id="dont-feed-the-trolls">Don’t feed the trolls.</h3>

<blockquote>
  <p>“In Internet terminology, a troll is a person who posts rude or offensive messages on the Internet, such as in online 
discussion forums, to disrupt discussion or to upset its participants (see Anonymous Internet posting). “Troll” can 
also mean the message itself or be a verb meaning to post such messages. “Trolling” is also commonly used to describe 
the activity.”</p>

  <p>For more, see <a href="http://en.wikipedia.org/wiki/Internet_trolls">Internet Trolls</a> in the Wikipedia.</p>
</blockquote>

<p>If someone makes an off-topic post that offends you, our best advice is to filter posts from that person to the trash.
When subscribers do choose to respond, sometimes a thread will feed on itself, and grow out of control. When that happens, 
our best advice is to filter the entire thread to the trash.</p>

<p>Our spam filters will catch most types of commercial spam, but troll spam is a hard for software to spot. The best defense 
is to withhold from the troll what he or she wants most: A response.</p>

<h3 id="ask-smart-questions">Ask smart questions.</h3>

<p>Every volunteer project obtains its strength from the people involved in it. You are welcome to join any of our mailing 
lists. You can choose to lurk, or actively participate; it’s up to you. The level of community responsiveness to specific 
questions is generally directly proportional to the amount of effort you spend formulating your question. Eric Raymond 
and Rick Moen have even written an essay entitled <a href="http://www.catb.org/~esr/faqs/smart-questions.html">Asking Smart Questions</a>
precisely on this topic. Please read the essay, follow its advice, and then post your smart questions to the appropriate list.</p>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
