<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" />
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Apache OpenOffice - Contact Us</title>
</head>

<body>

<h1>Thank you for contacting Apache OpenOffice</h1>

<p>
  <b>Please read the following options carefully.</b> Sending a question to the wrong place can lead to a delayed
  response, or even cause your message to be ignored. Remember, we have millions of users of Apache OpenOffice. We want
  to help you. Please help us help you by directing your message to the right place.
</p>

<ul>
  <li>
    <h2>If you are a user and need help with Apache OpenOffice...</h2>

    <p>
      The fastest way to get expert help with OpenOffice is to use our
      <a href="http://forum.openoffice.org/">Community Support Forums</a>. You can search for answers to problems without
      registering. If you do register, you can post new questions to get help, participate in discussions, and help other
      users. The forum also allows for notifications on any post by subscribing to a topic.
    </p>

    <p>
      <select id="forum_lang" name="forum_lang" title="Choose your favorite language" onchange="if( this.value ) window.location.href = this.value">
        <option value=""                                        title="Choose your favorite forum language" selected>Choose your favorite language</option>
        <option value=""                                        title="" >-----------------------------------------</option>
        <option value="https://forum.openoffice.org/"           title="Overview - All languages">Overview - All languages</option>
        <option value="https://forum.openoffice.org/en/forum/"  title="OpenOffice Community Forum (English)">OpenOffice Community Forum (English)</option>
        <option value="http://www.openoffice.org/de/foren.html" title="Support-Foren von Drittanbietern (Deutsch)">Support-Foren von Drittanbietern (Deutsch)</option>
        <option value="https://forum.openoffice.org/es/forum/"  title="OpenOffice Foro de la comunidad (Español)">OpenOffice Foro de la comunidad (Español)</option>
        <option value="https://forum.openoffice.org/fr/forum/"  title="Forum francophone OpenOffice (Français)">Forum francophone OpenOffice (Français)</option>
        <option value="https://forum.openoffice.org/it/forum/"  title="Forum della comunità OpenOffice (Italiano)">Forum della comunità OpenOffice (Italiano)</option>
        <option value="https://forum.openoffice.org/hu/forum/"  title="OpenOffice Közösségi fórum (Magyar)">OpenOffice Közösségi fórum (Magyar)</option>
        <option value="https://forum.openoffice.org/nl/forum/"  title="Nederlandstalige Gemeenschap (Nederlands)">Nederlandstalige Gemeenschap (Nederlands)</option>
        <option value="https://forum.openoffice.org/pl/forum/"  title="Forum społeczności OpenOffice (Polski)">Forum społeczności OpenOffice (Polski)</option>
        <option value="https://forum.openoffice.org/vi/forum/"  title="Diễn đàn viOO (Tiếng Việt)">Diễn đàn viOO (Tiếng Việt)</option>
        <option value="https://forum.openoffice.org/ja/forum/"  title="OpenOffice コミュニティーフォーラム (日本語)">OpenOffice コミュニティーフォーラム (日本語)</option>
        <option value="https://forum.openoffice.org/zh/forum/"  title="OpenOffice 中文社区论坛 (简体中文)">OpenOffice 中文社区论坛 (简体中文)</option>
      </select>
    </p>

    <p>
      Or, send a message to our <a href="mailto:users@openoffice.apache.org">general support mailing list</a>. (For full
      benefits, please see subscription information on the
      <a href="http://openoffice.apache.org/mailing-lists.html" >project mailing list page.</a>)
    </p>
    <p>
      Other support mechanisms, including FAQs, commercial support, etc., are described on our
      <a href="/support">Support Page</a>.
    </p>
  </li>

  <li>
    <h2>If you want to submit a bug report...</h2>

    <p>
      Note: Bug reporting is  <b>not</b> a general way to receive support for Apache OpenOffice problems. If you need
      help using OpenOffice, please use one of the support options described in the first section. But if you have found
      a bug that you want to report you should use our Bugzilla issue tracking system.
    </p>

    <p>
      To submit a bug report, use our bug reporting system, <a href="https://issues.apache.org/ooo/">Bugzilla</a>. The
      <a href="http://www.openoffice.org/qa/issue_handling/pre_submission.html">QA issue handling page</a> has useful
      information on getting started with Bugzilla, including searchng for issues, applying for a Bugzilla account, and
      enterring new issues.
    </p>
  </li>	

  <li>
    <h2>For problems with the Apache OpenOffice insfrastructure...</h2>

    <p>
      <b>Note:</b> These addresses are not for questions about the use of Apache OpenOffice. They are only for issues
      with the infrastructure services. User support questions sent to these addresses may be ignored.
    </p>

    <ul>
<!-- This item is still misused to report user problems with AOO and *not* with the website.
     Therefore disabling the list item until we have a better solution.
      <li>
        For problems with the <a href="http://www.openoffice.org/">www.openoffice.org</a> website, please contact us via
        <a href="mailto:dev@openoffice.apache.org&#63;subject=Reporting%20a%20problem%20with%20the%20OpenOffice%20website"
        title="Development mailing list (to receive answers you need to be subscribed)">Development mailing list</a>.
      </li>
-->
      <li>For problems with the <a href="https://issues.apache.org/ooo/">Bugzilla</a> system, please contact us via
        <a href="mailto:aoo-bugzilla-admin@apache.org&#63;subject=Reporting%20a%20problem%20with%20the%20OpenOffice%20BugZilla"
        title="BugZilla Admin mailing list (to receive answers you need to be subscribed)">
        BugZilla Admin mailing list</a>.
      </li>

      <li>For problems with the <a href="http://wiki.openoffice.org/">Wiki</a>, please contact us via
        <a href="mailto:dev@openoffice.apache.org&#63;subject=Reporting%20a%20problem%20with%20the%20OpenOffice%20Wiki"
        title="Development mailing list (to receive answers you need to be subscribed)">Development mailing list</a>.
      </li>

      <li>For problems with the <a href="https://translate.apache.org/">Translation Pootle service</a>, please contact
        us via <a href="mailto:l10n@openoffice.apache.org&#63;subject=Reporting%20a%20problem%20with%20the%20Pootle%20translation%20service"
        title="L10N mailing list (to receive answers you need to be subscribed)">L10N mailing list</a>.
      </li>
    </ul>

    <p>
      <b>Note:</b> Emails sent to these mailing lists are publicly archived. So do not send personal information that you
      would not want on the web for anyone to see.
    </p>
  </li>

  <li>
    <h2>For all other inquiries...</h2>

    Please consult our <a href="http://openoffice.apache.org/mailing-lists.html">mailing lists page</a> for the
    appropriate mailing lists.
  </li>	
</ul>


</body>
</html>

