updated mail config

This commit is contained in:
Bernhard Posselt
2013-02-08 16:01:52 +01:00
parent f497a8b9ba
commit 21331673ca

View File

@@ -1,94 +1,129 @@
Mail Configuration
==================
ownCloud does not contain a full email program but contains some parameters to
allow to send e.g. password reset email to the users. This function relies on
the PHPMailer library (``http://sourceforge.net/projects/phpmailer/``). To
the `PHPMailer library <http://sourceforge.net/projects/phpmailer/>`_. To
take advantage of this function it needs to be configured properly.
Requirements
------------
Different requirements need to be matched, depending on the environment which
you are using and the way how you want to send email. You can choose between
SMTP, PHP mail, Sendmail and qmail.
**SMTP**, **PHP mail**, **Sendmail** and **qmail**.
Parameters
----------
* **SMTP (Simple Mail Tranfer Protocol)**
All parameters need to be set in :file:`config/config.php`
If you want to send email using a local or remote SMTP server it is necessary
to enter the name or ip address of the server, optionally followed by a colon
separated port number, e.g. ``:425``. If this value is not given the default
port 25/tcp will be used unless you will change that by modifying the
``mail_smtpport`` parameter. Multiple server can be entered separated by
semicolon::
SMTP
~~~~
If you want to send email using a local or remote SMTP server it is necessary
to enter the name or ip address of the server, optionally followed by a colon
separated port number, e.g. **:425**. If this value is not given the default
port 25/tcp will be used unless you will change that by modifying the
**mail_smtpport** parameter. Multiple server can be entered separated by
semicolon:
.. code-block:: php
<?php
"mail_smtpmode" => "smtp",
"mail_smtphost" => "smtp-1.server.dom;smtp-2.server.dom:425",
"mail_smtpport" => 25,
or::
or
.. code-block:: php
<?php
"mail_smtpmode" => "smtp",
"mail_smtphost" => "smtp.server.dom",
"mail_smtpport" => 425,
If a malware or SPAM scanner is running on the SMTP server it might be
necessary that you increase the SMTP timeout to e.g. 30s::
If a malware or SPAM scanner is running on the SMTP server it might be
necessary that you increase the SMTP timeout to e.g. 30s:
.. code-block:: php
<?php
"mail_smtptimeout" => 30,
If the SMTP server accepts unsecure connections, the default setting can be
used::
If the SMTP server accepts unsecure connections, the default setting can be
used:
"mail_smtpsecure" => '',
.. code-block:: php
If the SMTP server only accepts secure connections you can choose between
the following two variants:
<?php
**ssl**
- A secure connection will be initiated using the outdated SMTPS protocol
which uses the port 465/tcp::
"mail_smtpsecure" => '',
If the SMTP server only accepts secure connections you can choose between
the following two variants:
SSL
^^^
A secure connection will be initiated using the outdated SMTPS protocol
which uses the port 465/tcp:
.. code-block:: php
<?php
"mail_smtphost" => "smtp.server.dom:465",
"mail_smtpsecure" => 'ssl',
**tls**
- A secure connection will be initiated using the STARTTLS protocol which
uses the default port 25/tcp::
TLS
^^^
A secure connection will be initiated using the STARTTLS protocol which
uses the default port 25/tcp:
.. code-block:: php
<?php
"mail_smtphost" => "smtp.server.dom",
"mail_smtpsecure" => 'tls',
And finally it is necessary to configure if the SMTP server requires
authentication, if not, the default values can be taken as it.
::
And finally it is necessary to configure if the SMTP server requires
authentication, if not, the default values can be taken as it.
.. code-block:: php
<?php
"mail_smtpauth" => false,
"mail_smtpname" => "",
"mail_smtppassword" => "",
If SMTP authentication is required you have to set the required username
and password and can optionally choose between the authentication types
``LOGIN`` (default) or ``PLAIN``.
::
If SMTP authentication is required you have to set the required username
and password and can optionally choose between the authentication types
**LOGIN** (default) or **PLAIN**.
.. code-block:: php
<?php
"mail_smtpauth" => true,
"mail_smtpauthtype" => "LOGIN",
"mail_smtpname" => "username",
"mail_smtppassword" => "password",
* **PHP mail**
PHP mail
~~~~~~~~
If you want to use PHP mail it is necessary to have an installed and working
email system on your server. Which program in detail is used to send email is
defined by the configuration settings in the **php.ini** file. (On \*nix
systems this will most likely be Sendmail.) ownCloud should be able to send
email out of the box.
If you want to use PHP mail it is necessary to have an installed and working
email system on your server. Which program in detail is used to send email is
defined by the configuration settings in the ``php.ini`` file. (On \*nix
systems this will most likely be Sendmail.) ownCloud should be able to send
email out of the box.
::
.. code-block:: php
<?php
"mail_smtpmode" => "php",
"mail_smtphost" => "127.0.0.1",
@@ -100,13 +135,16 @@ Parameters
"mail_smtpname" => "",
"mail_smtppassword" => "",
* **Sendmail**
Sendmail
~~~~~~~~
If you want to use the well known Sendmail program to send email, it is
necessary to have an installed and working email system on your \*nix server.
The sendmail binary (**/usr/sbin/sendmail**) is ususally part of that system.
ownCloud should be able to send email out of the box.
If you want to use the well known Sendmail program to send email, it is
necessary to have an installed and working email system on your \*nix server.
The sendmail binary (``/usr/sbin/sendmail``) is ususally part of that system.
ownCloud should be able to send email out of the box.
::
.. code-block:: php
<?php
"mail_smtpmode" => "sendmail",
"mail_smtphost" => "127.0.0.1",
@@ -118,14 +156,17 @@ Parameters
"mail_smtpname" => "",
"mail_smtppassword" => "",
* **qmail (http://www.qmail.org/)**
qmail
~~~~~
If you want to use the qmail program to send email, it is necessary to have an
installed and working qmail email system on your server. The sendmail binary
(``/var/qmail/bin/sendmail``) will then be used to send email. ownCloud should
be able to send email out of the box.
If you want to use the qmail program to send email, it is necessary to have an
installed and working qmail email system on your server. The sendmail binary
(**/var/qmail/bin/sendmail**) will then be used to send email. ownCloud should
be able to send email out of the box.
::
.. code-block:: php
<?php
"mail_smtpmode" => "qmail",
"mail_smtphost" => "127.0.0.1",
@@ -143,108 +184,122 @@ Send a Test Email
The only way to test your email configuration is, to force a login failure,
because a function to send a test email has not be implemented yet.
First make sure that you are using a full qualified domain and not an ip address
in the ownCloud URL, like ``http://my-owncloud-server.domain.dom/owncloud/``.
First make sure that you are using a full qualified domain and not an ip address in the ownCloud URL, like::
http://my-owncloud-server.domain.dom/owncloud/
The password reset function fetches the domain name from that URL to build the
email sender address, e.g. ``john@domain.dom``.
email sender address, e.g.::
john@domain.dom
Next you need to enter your login and an *invalid* password. As soon as you
press the login button the login mask reappears and a ``Ive forgotten my password``
link will be shown above the login field. Click on that link, re-enter your login
and press the ``Reset password`` button - that's all.
press the login button the login mask reappears and a **Ive forgotten my password** link will be shown above the login field. Click on that link, re-enter your login and press the **Reset password** button - that's all.
Trouble shooting
----------------
1. **How can I find out if a SMTP server is reachable?**
How can I find out if a SMTP server is reachable?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use the ping command to check the server availability:
::
Use the ping command to check the server availability::
# ping smtp.server.dom
PING smtp.server.dom (ip-address) 56(84) bytes of data.
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=1 ttl=64 time=3.64 ms
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=2 ttl=64 time=0.055 ms
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=3 ttl=64 time=0.062 ms
ping smtp.server.dom
2. **How can I find out if the SMTP server is listening on a specific tcp port?**
::
A SMTP server is usually listening on port ``25/tcp`` (smtp) and/or in
rare circumstances is also listening on the outdated port ``465/tcp`` (smtps).
You can use the telnet command to check if a port is available:
::
PING smtp.server.dom (ip-address) 56(84) bytes of data.
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=1 ttl=64 time=3.64 ms
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=2 ttl=64 time=0.055 ms
64 bytes from your-server.local.lan (192.168.1.10): icmp_req=3 ttl=64 time=0.062 ms
# telnet smtp.domain.dom 25
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:28:14 +0100
How can I find out if the SMTP server is listening on a specific tcp port?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3. **How can I find out if a SMTP server supports the outdated SMTPS protocol?**
A SMTP server is usually listening on port **25/tcp** (smtp) and/or in
rare circumstances is also listening on the outdated port **465/tcp** (smtps).
You can use the telnet command to check if a port is available::
A good indication that a SMTP server supports the SMTPS protocol is that it
is listening on port ``465/tcp``. How this can be checked has been described
previously.
telnet smtp.domain.dom 25
4. **How can I find out if a SMTP server supports the TLS protocol?**
::
A SMTP server usually announces the availability of STARTTLS right after a
connection has been established. This can easily been checked with the telnet
command. You need to enter the marked lines to get the information displayed:
::
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:28:14 +0100
# telnet smtp.domain.dom 25
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:39:55 +0100
EHLO your-server.local.lan # <<< enter this command
250-smtp.domain.dom Hello your-server.local.lan [ip-address]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250-STARTTLS # <<< STARTTLS is supported!
250 HELP
QUIT # <<< enter this command
221 smtp.domain.dom closing connection
Connection closed by foreign host.
How can I find out if a SMTP server supports the outdated SMTPS protocol?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A good indication that a SMTP server supports the SMTPS protocol is that it
is listening on port **465/tcp**. How this can be checked has been described
previously.
5. **How can I find out which authentication types/methods a SMTP server supports?**
How can I find out if a SMTP server supports the TLS protocol?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A SMTP server usually announces the availability of STARTTLS right after a
connection has been established. This can easily been checked with the telnet command. You need to enter the marked lines to get the information displayed::
A SMTP server usually announces the available authentication types/methods
right after a connection has been established. This can easily been checked
with the telnet command. You need to enter the marked lines to get the
information displayed:
::
telnet smtp.domain.dom 25
# telnet smtp.domain.dom 25
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:39:55 +0100
EHLO your-server.local.lan # <<< enter this command
250-smtp.domain.dom Hello your-server.local.lan [ip-address]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5 # <<< available Authentication types
250-STARTTLS
250 HELP
QUIT # <<< enter this command
221 smtp.domain.dom closing connection
Connection closed by foreign host.
::
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:39:55 +0100
EHLO your-server.local.lan # <<< enter this command
250-smtp.domain.dom Hello your-server.local.lan [ip-address]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250-STARTTLS # <<< STARTTLS is supported!
250 HELP
QUIT # <<< enter this command
221 smtp.domain.dom closing connection
Connection closed by foreign host.
How can I find out which authentication types/methods a SMTP server supports?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A SMTP server usually announces the available authentication types/methods
right after a connection has been established. This can easily been checked
with the telnet command. You need to enter the marked lines to get the
information displayed::
telnet smtp.domain.dom 25
::
Trying 192.168.1.10...
Connected to smtp.domain.dom.
Escape character is '^]'.
220 smtp.domain.dom ESMTP Exim 4.80.1 Tue, 22 Jan 2013 22:39:55 +0100
EHLO your-server.local.lan # <<< enter this command
250-smtp.domain.dom Hello your-server.local.lan [ip-address]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5 # <<< available Authentication types
250-STARTTLS
250 HELP
QUIT # <<< enter this command
221 smtp.domain.dom closing connection
Connection closed by foreign host.
6. **Enable Debug Mode**
Enable Debug Mode
~~~~~~~~~~~~~~~~~
If you are still not able to send email it might be useful to activate
further debug messages by setting the following parameter. Right after
you have pressed the ``Reset password`` button, as described before, a
lot of ``SMTP -> get_lines(): ...`` messages will be written on the
screen.
::
If you are still not able to send email it might be useful to activate
further debug messages by setting the following parameter. Right after
you have pressed the **Reset password** button, as described before, a
lot of **SMTP -> get_lines(): ...** messages will be written on the
screen.
.. code-block:: php
<?php
"mail_smtpdebug" => true;