<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="skin/tigris.css" type="text/css">
<link rel="stylesheet" href="skin/mysite.css" type="text/css">
<link rel="stylesheet" href="skin/site.css" type="text/css">
<link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
<title>WebServices - Axis</title>
</head>
<body bgcolor="white" class="composite">
<div id="banner">
<table width="100%" cellpadding="0" cellspacing="0" summary="banner" border="0">
<tbody>
<tr>
<td align="left">
<div class="groupLogo">
<a href="http://ws.apache.org/"><img border="0" class="logoImage" alt="The Apache WebServices Project" src="images/project-logo.png"></a>
</div>
</td><td nowrap="1" width="100%" align="left">
<div class="projectTitleImg">
<br>
<a href=""><img border="0" class="logoImage" alt="Web Services - Axis" src="images/wsaxis.png"></a>
</div>
</td><td align="right">
<div class="projectLogo">
<a href="http://ws.apache.org/axis/"><img border="0" class="logoImage" alt="The Apache Axis Project" src="images/axis3.jpg"></a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
<tbody>
<tr class="status">
<td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.apache.org/">Apache</a> | <a href="http://ws.apache.org/">Web Services</a> | <a href="http://ws.apache.org/axis/">Axis</a></td><td nowrap="1" align="right">
<form method="get" action="http://www.google.com/search" target="_blank">Search <input type="hidden" name="sitesearch" value="ws.apache.org"><input type="text" id="query" name="q" size="10"><img class="spacer" src="skin/images/spacer.gif" alt="" width="5" height="1"><input type="submit" value="Go" name="Search">
</form>
</td>
</tr>
</tbody>
</table>
<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
<tbody>
<tr valign="top">
<td id="leftcol">
<div id="navcolumn">
<div class="menuBar">
<div class="menu">
<span class="menuLabel">Axis</span>
 
<div class="menuItem">
<a href="index.html">Introduction</a>
</div>
 
<div class="menuItem">
<a href="news.html">News</a>
</div>

 
<div class="menuItem">
<a href="http://wiki.apache.org/ws/FrontPage/Axis">FAQ/Wiki</a>
</div>
 
<div class="menu">
<span class="menuLabel">Get Involved</span>
  
<div class="menuItem">
<a href="overview.html">Overview</a>
</div>
  
<div class="menuItem">
<a href="cvs.html">SVN Repository</a>
</div>
  
<div class="menuItem">
<a href="mail.html">Mailing Lists</a>
</div>
  
<div class="menuItem">
<a href="ref.html">Reference Library</a>
</div>
  
<div class="menuItem">
<a href="bugs.html">Bugs</a>
</div>
  
<div class="menuItem">
<a href="howtobuild.html">HowToBuildSite</a>
</div>
 
</div>
 
<div class="menu">
<span class="menuLabel">Axis (Java)</span>  
  
<div class="menuItem">
<a href="java/index.html">Documentation</a>
</div>
  
  
<div class="menuItem">
<a href="java/releases.html">Releases</a>
</div>
  
<div class="menuItem">
<a href="java/install.html">Installation</a>
</div>
  
<div class="menuItem">
<a href="java/user-guide.html">User's Guide</a>
</div>
  
<div class="menuItem">
<a href="java/developers-guide.html">Developer's Guide</a>
</div>
  
<div class="menuItem">
<a href="java/integration-guide.html">Integration Guide</a>
</div>
  
<div class="menuItem">
<a href="java/architecture-guide.html">Architecture Guide</a>
</div>
  
<div class="menuItem">
<a href="java/reference.html">Reference Guide</a>
</div>
  
<div class="menuItem">
<a href="java/reading.html">Reading Guide</a>
</div>
  
<div class="menuItem">
<a href="java/requirements.html">Requirements</a>
</div>
 
</div>
 
<div class="menu">
<span class="menuLabel">Axis C++</span>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/index.html">Home</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/documentation.html">Documentation</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/download.html">Download</a>
</div>
  
<div class="menuItem">
<a href="http://wiki.apache.org/ws/FrontPage/AxisCPP">Wiki Pages</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/cpp/who.html">Who we are</a>
</div>
 
</div>

<div class="menu">
<span class="menuLabel">Downloads</span>
  
<div class="menuItem">
<a href="interim.html">Interim Drops</a>
</div>
  
<div class="menuItem">
<a href="http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/">Source Code</a>
</div>

</div>

<div class="menu">
<span class="menuLabel">Translation</span>
  
<div class="menuItem">
<a href="http://ws.apache.org/axis/ja/index.html">Japanese</a>
</div>

</div>

<div class="menu">
<span class="menuLabel">Related Projects</span>
  
<div class="menuItem">
<a href="http://ws.apache.org/wsif/">WSIF</a>
</div>
  
<div class="menuItem">
<a href="http://ws.apache.org/juddi/">jUDDI</a>
</div>
  
<div class="menuItem">
<a href="http://wsdl4j.sourceforge.net">WSDL4J</a>
</div>
  
<div class="menuItem">
<a href="http://www.uddi4j.org/">UDDI4J</a>
</div>

</div>

<div class="menu">
<span class="menuLabel">Misc</span>
  
<div class="menuItem">
<a href="who.html">Who we are</a>
</div>
  
<div class="menuItem">
<a href="contact.html">Contact</a>
</div>
  
<div class="menuItem">
<a href="legal.html">Legal</a>
</div>
  
<div class="menuItem">
<a href="docs.html">Notes/Docs</a>
</div>

</div>


</div>
</div>
</div>
</td><td>
<div id="bodycol">
<div class="app">
<div class="h3">
  
  


<a name="MailGuideline"></a>

<div class="h3">
<h3>Mail Guideline</h3>
</div>



<p>Every volunteer project obtains its strength from the people involved in it. Mailing lists provide a simple and effective communication mechanism. </p>


<p>You are welcome to join any of our mailing lists (or all of them if you wish). You can choose to lurk, or actively participate. It's up to you.</p>


<p>
<b>Before you join these lists, you should make sure that you read and follow the information below... </b>
</p>


<p>We ask that you do your best to respect the charter of the appropriate mailing list. There are generally two types of lists that you can join. 
  <ul>
    
<li>The "User" list is where you should send questions and comments about configuration, setup, usage and other "user" types of questions.</li>
    
<li> The "Developer" list is where you should should send questions and comments about the actual software source code and general "development" types of questions. </li>
  
</ul>

</p>


<p>
<b>Summary: Join the lists that are appropriate for your discussion.</b>
<br>
  Please make sure that you are joining the list that is appropriate for the topic or product that you would like to discuss.</p>


<p>
<b>Summary: Do not abuse resources in order to get help.</b>
<br>
  Asking your configuration or user type of question on the developers list because you think that you will get help more quickly by going directly to the developers instead of to the user base is not very nice. Chances are that doing this will actually prevent people from answering your question because it is clear that you are trying to abuse resources.</p>


<p>
<b>Summary: Do your best to ensure that you are not sending HTML or "Stylelized" email to the list.</b>
<br>
  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. If you are using Microsoft products to send email, there are several bugs in the software that prevent you from turning off the sending of HTML email. Please read this page as well...</p>


<p>
<b>Summary: Watch where you are sending email.</b>
<br>
  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>


<p>
<b>Summary: Do not crosspost messages.</b>
<br>
  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 may only see half of the conversation. </p>


<p>
<a href="mail.html">Back to the Mailing List page.</a>
</p>



  

<div id="pdf" align="right">
<a href="mailguide.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" class="skin"><br>
          PDF</a>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div id="footer">
<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
<tbody>
<tr>
<td colspan="2">
<div align="center">
<div class="copyright">
              Copyright &copy; 2000-2005&nbsp;The Apache Software Foundation. All rights reserved.
            </div>
</div>
</td>
</tr>
<tr>
<td align="left"></td><td align="right">
<div align="right">
<div class="credit"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
