noel        2002/12/13 15:36:17

  Modified:    src/xdocs FAQ.xml
  Log:
  Updated virtual hosting and other areas
  
  Revision  Changes    Path
  1.23      +64 -37    jakarta-james/src/xdocs/FAQ.xml
  
  Index: FAQ.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/xdocs/FAQ.xml,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- FAQ.xml   13 Dec 2002 18:22:11 -0000      1.22
  +++ FAQ.xml   13 Dec 2002 23:36:17 -0000      1.23
  @@ -2,7 +2,7 @@
   <document>
      <properties>
         <title>Frequently Asked Questions</title>
  -      <author email="[EMAIL PROTECTED]">Danny Angus</author>
  +      <author email="[EMAIL PROTECTED]">James Mail Server 
Project</author>
      </properties>
      <body>
         <section name="This FAQ">
  @@ -98,7 +98,7 @@
       &lt;sqlFile>file://conf/sqlResources.xml&lt;/sqlFile>
   &lt;/repository>
   </source>
  -            <p>Database users will also need to ensure that they have configured a 
data-source named to match the destination URL</p>
  +            <p>Database users will also need to ensure that they have <a 
href="using_database_2_1.html">configured a data-source</a> named to match the 
destination URL</p>
               <p>Using the filesystem:-</p>
               <source>
   &lt;repository name="list-james"
  @@ -108,18 +108,18 @@
   </source>
               <p>Restart James, send a mail to james-on@localhost and you should be 
subscribed.</p>
               <p>The repository, be it a database table or directory in the 
filesystem will be created automatically.</p>
  -            <p>Database users can manipulate the users repository using SQL, and 
hence any application capable of running SQL queries against it.<br/>Danny Angus</p>
  +            <p>Database users can manipulate the users repository using SQL, and 
hence any application capable of running SQL queries against it.</p>
            </subsection>
            <a name="2"/>
            <subsection name="James seems to be an open relay for Spam, is it?">
               <p>In some simple tests of mail relays James appears to be an open 
relay, properly configured it is not. </p>
               <p>Because James is an email application platform it currently accepts 
all mail delivered to it via SMTP for processing. Only after the mail has been 
recieved does this processing begin.</p>
               <p>This means that James accepts Spam. However the default 
configuration, and any sensible re-configuration has a number of anti-spam measures 
which will prevent the re-transmisson of spam from James. This makes it a blackhole 
for spam.</p>
  -            <p>This also means that James will not verify addresses, but of course 
this means that valid addresses can't be harvested from James by spammers 
either.<br/>Danny Angus</p>
  +            <p>This also means that James will not verify addresses, but of course 
this means that valid addresses can't be harvested from James by spammers either.</p>
            </subsection>
            <a name="3"/>
            <subsection name="I can send messages to James, but nobody is receiving 
them.  What do I do?">
  -            <p>Check that you've added valid DNS servers to your James 
installation.  Email delivery requires the use of special mail related DNS information 
(MX records), so James needs to explicitly be given DNS servers.  Look at your 
config.xml file for a &lt;dnsserver&gt; section and add one or more DNS servers.  
Serge Knystautas</p>
  +            <p>Check that you've added valid DNS servers to your James 
installation.  Email delivery requires the use of special mail related DNS information 
(MX records), so James needs to explicitly be given DNS servers.  Look at your 
config.xml file for a &lt;dnsserver&gt; section and add one or more DNS servers.</p>
               <p>Additionally, check the RemoteAddrNotInNetwork matcher 
under&lt;processor name="transport"&gt;. By default it looks like this:</p>
   <source>
   &lt;mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"&gt;
  @@ -142,25 +142,65 @@
                  <ol>
                     <li>Update your domain's DNS entries so there are MX records that 
point to the machine that is running James.  Note that it is illegal for MX records to 
point to IP addresses.  You need to point MX records to a valid CNAME or A name entry, 
and then map that eventually to an IP address.</li>
                     <li>You could alternatively give people an email address with IP 
addresses.  Most people will think it's a very strange email address, but 
hello@[192.168.0.1] is a valid email address.  Note that you need to wrap the IP 
address in brackets.</li>
  -               </ol>
  -               Serge Knystautas</p>
  +               </ol></p>
            </subsection>
            <a name="5"/>
            <subsection name="I'm trying to debug messages that James is trying to 
deliver.  Where should I look?">
               <p>First step is to look in the log directory at the mailet.log file.  
Look for entries that include the text "RemoteDelivery".  This should provide some 
high-level debug information of James' attempt to delivery mail remotely.</p>
  -            <p>If you want to delve into the code, look at the RemoteDelivery 
mailet.  You may also want to review the mail repository source code for the 
repository type you are using (file, db, etc...).<br/>Serge Knystautas</p>
  +            <p>If you want to delve into the code, look at the RemoteDelivery 
mailet.  You may also want to review the mail repository source code for the 
repository type you are using (file, db, etc...).</p>
            </subsection>
            <a name="6"/>
            <subsection name="What about IMAP support?">
  -            <p>Unfortunately IMAP support is currently stalled.  There is a 
proposal in CVS, but IMAP is a significantly more complex than other mail protocols, 
both from a protocol command support and in terms of complexity you need on the 
server.  If you are interested in taking the proverbial ball and running with it, we 
would all very much appreciated. (I personally am incredibly frustrated with an old 
Netscape Mail server, but I've sworn myself to upgrade only to James's IMAP once ready 
as incentive.)<br/>Serge Knystautas</p>
  -            <p>An update to Serge's comment: the IMAP server has recently attracted 
new interest.  We are hopeful that we will be able to provide basic IMAP support in 
James 2.1<br/>Peter M. Goldstein</p>
  +            <p>IMAP development had been stalled, but has recently attracted new 
activity.  IMAP support is scheduled for inclusion in James v3.  In the meantime, 
there is experimental code in the repository.  If you are interested in working on or 
trying the IMAP prototype code, join the james-dev mailing list and let us know.</p>
            </subsection>
            <a name="7"/>
            <subsection name="What about support virtual hosting?">
  -            <p>Virtual hosting is something the developers are still wrestling 
with.  The challenge is that POP3 does not support virtual hosting in that it does not 
have a command to indicate what domain the user is in.  What this means is the mail 
server needs to develop a 'mapping' or 'translation', e.g., '[EMAIL PROTECTED]' gets a 
username 'domaina.user1'.  This allows the mail server to have a single username 
namespace.  We have seen a few good proposals put forward, but nothing that seemed the 
clear solution as ideally we could have this part solve the next issue.</p>
  -            <p>Beyond that, James needs to refine virtual hosting for mailet 
processing.  The mailet API has a Mail.getUser() method that no longer would be 
useable as a reliable indicator of whether they were in the local username namespace.  
To date we are unclear of the best way to bring this translation into the mailet 
processing.  Similarly, it would be nice to support different mailet processing based 
on the domain, although this is somewhat feasible using the limited processing flow 
offered with a HostIs/ForwardTo combination.</p>
  -            <p>This is one of the most requested features, so hopefully this will 
be resolved soon.  It is currently scheduled for the 3.0 release.
  -  <br/>Serge Knystautas</p>
  +         <p>James v2.1 includes a new mailet for database users, <a 
href="javadocs/org/apache/james/transport/mailets/JDBCVirtualUserTable.html">JDBCVirtualUserTable</a>,
 that mimics some of the sendmail capabilities of the same name.</p>
  +
  +<p>JDBCVirtualUserTable does not provide any administation tools.
  +You'll have to create and maintain the database table yourself.  The
  +standard configuration is as follows:</p>
  +
  +<source>
  +CREATE TABLE VirtualUserTable
  +(
  + user varchar(64) NOT NULL default '',
  + domain varchar(255) NOT NULL default '',
  + target_address varchar(255) NOT NULL default '',
  + PRIMARY KEY (user,domain)
  +);
  +</source>
  +
  +<p>The standard query used with VirtualUserTable is:</p>
  +
  +<source>
  +select VirtualUserTable.target_address from VirtualUserTable, VirtualUserTable as 
VUTDomains
  +where (VirtualUserTable.user like ? or VirtualUserTable.user like "\%")
  +and (VirtualUserTable.domain like ?
  +or (VirtualUserTable.domain like "\%" and VUTDomains.domain like ?))
  +order by concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1
  +</source>
  +
  +<p>For a given [user, domain, domain] used with the query, this will
  +match as follows (in precedence order):
  +<ol>
  +<li>user@domain    - explicit mapping for user@domain</li>
  +<li>user@%         - catchall mapping for user anywhere</li>
  +<li>%@domain       - catchall mapping for anyone at domain</li>
  +<li>null           - no valid mapping</li>
  +</ol>
  +</p>
  +
  +<p>A sample mailet looks like:</p>
  +<source>
  +&lt;mailet match="All" class="JDBCVirtualUserTable"&gt;
  +  &lt;table&gt;db://maildb/VirtualUserTable&lt;/table&gt;
  +&lt;/mailet&gt;
  +</source>
  +
  +            <p>More generalized viirtual hosting is something the developers are 
still discussing.  One issue is that POP3 does not support virtual hosting in that it 
does not have a command to indicate what domain the user is in.  What this means is 
the mail server needs to support a 'mapping' or 'translation' convention, e.g., 
'[EMAIL PROTECTED]' gets a username 'domaina.user1'.  This allows the mail server to 
have a single username namespace.  We have seen a few good proposals put forward, but 
nothing that seemed the clear solution, as ideally we could have this part solve the 
next issue.</p>
  +            <p>Beyond that, James needs to refine virtual hosting for mailet 
processing.  With the current user model, the mailet API has a Mail.getUser() method 
that no longer would be useable as a reliable indicator of whether they were in the 
local username namespace.  To date we are unclear of the best way to bring this 
translation into the mailet processing.  Similarly, it would be nice to support 
different mailet processing based on the domain, although this is somewhat feasible 
using the limited processing flow offered with a HostIs matcher.</p>
  +            <p>Virtual hosting is one of the most requested features, and 
additional work is scheduled for the 3.0 release.</p>
            </subsection>
            <a name="8"/>
            <subsection name="Where do I stick classes and jars?">
  @@ -169,8 +209,7 @@
                     <li>Stick jars in the james/lib directory and add them to the 
classpath in run.bat or run.sh.</li>
                     <li>Instructions for including classes for custom mailets and 
matchers can be found <a href="custom_mailet_2_1.html">here</a> and <a 
href="custom_matcher_2_1.html">here</a> respectively..</li>
                  </ul>
  -  Eventually we hope to support mailet reloading and a special lib and classes 
directory within the james directory that custom mailets can load from, but for now 
these are hopefully some useful tips.
  -  <br/>Serge Knystautas</p>
  +  Eventually we hope to support mailet reloading and a special lib and classes 
directory within the james directory that custom mailets can load from, but for now 
these are hopefully some useful tips.</p>
            </subsection>
            <a name="9"/>
            <subsection name="How do I upgrade to a newer version of James?">
  @@ -182,7 +221,6 @@
                     <li>Replace the var directory by the previous var directory.  
This will copy over user accounts, inboxes, spools, and whatever else.</li>
                     <li>Restart James.</li>
                  </ol>
  -               Daniel Herlemont
               </p>
            </subsection>
            <a name="10"/>
  @@ -220,21 +258,17 @@
     :eof
     </source>
               <p>
  -  I created another .bat file called UnistallJamesNTService containing the 
following 1 line:
  +  Create another .bat file called UnistallJamesNTService containing the following 1 
line:
     </p>
               <source>
     James -uninstall JamesMailServer
     </source>
  -            <p>By copying the 2 above .bat files and the JavaService.exe (follow 
the download link  at http://www.alexandriasc.com/software/JavaService/index.html) to 
the [james]\bin folder, I am able to install and uninstall the JamesMailServer NT 
service!
  -  <br/>Taken from 
http://www.mail-archive.com/james-user@jakarta.apache.org/msg01389.html by Steve Belt
  -  </p>
  +            <p>By copying the 2 above .bat files and the JavaService.exe (follow 
the download link  at http://www.alexandriasc.com/software/JavaService/index.html) to 
the [james]\bin folder, you should be able to install and uninstall the 
JamesMailServer NT service!
  +  <br/>Copied from <a 
href="http://www.mail-archive.com/james-user@jakarta.apache.org/msg01389.html";>a 
message</a> from the james-user mailing list.</p>
            </subsection>
            <a name="11"/>
            <subsection name="Why isn't my mailet making changes to a MimeMessage?">
  -            <p>Check the JavaMail docs... I don't think I would have designed it 
this way, but per the API, when you call MimeMessage.setContent(blah), you have to 
call saveChanges() to apply your changes.  James tries to automatically call this 
method so you don't have to, but in certain cases you'll still have to call 
saveChanges().
  -  <br/>
  -  Serge Knystautas
  -  </p>
  +            <p>Check the JavaMail docs.  Per the API, when you call 
MimeMessage.setContent(blah), you have to call saveChanges() to apply your changes.  
James tries to automatically call this method so you don't have to, but in certain 
cases you'll still have to call saveChanges().</p>
            </subsection>
             <a name="12"/>
            <subsection name="How to remove unneeded services like NNTP, POP3?">
  @@ -256,29 +290,22 @@
                James. You must also remove all sections related to the removed
                blocks from the James configuration file - config.xml - otherwise
                you will get error messages, saying that there is no corresponding
  -             block.<br/>
  -             Hontvari Jozsef</p>
  +             block.</p>
            </subsection>
            <a name="13"/>
            <subsection name="How can I contribute to James">
  -            <p>Read the "Contributors How To" <a href="contribute.html">here</a>
  -            <br/>
  -  Danny Angus
  -  </p>
  +            <p>Read the "Contributors How To" <a href="contribute.html">here</a></p>
            </subsection>
             <a name="14"/>
   <subsection name="How can I make sendmail route local mail (or all mail) through 
James on the same machine?">
  -            <p>Read the "sendmail How To" <a href="james_and_sendmail.html">here</a>
  -            <br/>
  -  Danny Angus
  -  </p>
  +            <p>Read the "sendmail How To" <a 
href="james_and_sendmail.html">here</a></p>
   </subsection>
             <a name="15"/>
             <subsection name="I am using Microsoft's SQL Type 4 JDBC Driver, why do I 
get a &quot;Can't start manual transaction mode because there are cloned 
connections&quot; exception?">
   <p>I am using Microsoft's SQL Type 4 JDBC Driver, why do I get the following 
exception?<br/>java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for 
JDBC]Can&apos;t start manual transaction mode because there are cloned connections.</p>
   <p>This seems to be a problem with the Microsoft Type 4 JDBC Driver and concurrent 
statements/transactions/resultsets on the same database conntection.</p>
   <p>To solve this you need to add <b>;SelectMethod=cursor</b> to the end of your 
dburl string. Your dburl string would then look something like 
this<br/>&lt;dburl&gt;jdbc:microsoft:sqlserver://dbserver.host.name:1433;SelectMethod=cursor&lt;/dburl&gt;</p>
  -<p>NOTE: some people have complained about performance when using this option, the 
alternative is a 3rd party JDBC driver but these are often not free.<br/>Serge 
Sozonoff</p>
  +<p>NOTE: some people have complained about performance when using this option, the 
alternative is a 3rd party JDBC driver but these are often not free.</p>
             </subsection>
             <a name="16"/>
             <subsection name="I am using James with a MySQL database and I keep 
getting a &quot;Packet is larger than max_allowed_packet&quot; when receiving large 
messages despite the fact that my max packet size is configured to be larger than my 
max message size.  What's going on?">
  @@ -296,7 +323,7 @@
               to prevent the driver from throwing an exception.  So if you want a 4MB
               maximum message size, you need a 5MB max_packet size.  Or a 4MB
               max_packet_size allows only a 3.2MB max message.
  -            </p><p>Noel Bergman</p>
  +            </p>
             </subsection>
         </section>
      </body>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to