【ownCloud】配置邮件服务器

Posted by 橙叶 on Sat, Sep 24, 2016

ownCloud能够发送密码重置邮件,通知其他用户共享给你的新文件,通知用户文件中的变化和活动。用户可以配置接受的通知类型。

ownCloud不包含完整的电子邮件服务器,而是连接到您现有的邮件服务器。你必须给出一个有效的邮件服务器,ownCloud才能够发送电子邮件。邮件服务器可以在本地,也可以在远程位置。

在ownCloud 7之后,可以通过管理界面配置邮件服务器(如图)

../_images/smtp-config-wizard.png
在这个界面配置是很容易的。相关的设置也可以在config.php中找到。

ownCloud电子邮件向导支持三种类型的邮件服务器:SMTP,PHP和Sendmail。当你的邮件服务器在远程位置,请使用SMTP,如果邮件服务器和ownCloud在同一台主机上,可以使用PHP和Sendmail。

设置一个邮件服务器

你需要从你的邮件服务器管理员获得以下信息使ownCloud连接到远程SMTP服务器:
  • 加密类型:无,SSL或TLS
  • 您希望ownCloud使用的发件人地址
  • 是否需要身份验证
  • 验证方法:无,None, Login, Plain, 或 NT LAN Manager
  • 该服务器的IP地址域名
  • 登录凭据,如果需要的话
../_images/smtp-config-smtp.png
你的改变会立刻被保存,并且你可以点击“发送邮件”按钮来测试你的设置。它会发送一封测试邮件到你在个人页面里填写的邮件地址。测试邮件大概是下面这样的:
If you received this email, the settings seem to be correct.

– ownCloud web services under your control

设置PHP和Sendmail

配置PHP或Sendmail,两种方式二选一,然后输入您想要使用的邮件地址。
../_images/smtp-config-php-sendmail.png
你如何决定使用哪一个? PHP模式使用当地的sendmail程序。如果你想使用php.ini控制一些你的邮件服务器功能,如设置路径,头文件,或通过额外的命令选项sendmail程序使用此功能。这些根据你所使用的服务器不同,看看你的选择是什么。
smtp
在大多数情况向是最好的,因为它去掉了通过PHP的额外的步骤,你可以在你的邮件服务器配置里控制你的邮件服务器位置。

在大多数情况下,SMTP选项是最好的,因为它消除通过PHP的额外的步骤,你可以控制你的邮件服务器位置。

使用电子邮件模板

另一个有用的新功能是可编辑的电子邮件模板。现在您可以在管理页面上编辑ownCloud的电子邮件模板。这些是可用的模板:
  • 分享电子邮件(HTML) - 使用HTML格式的电子邮件通知新的文件共享
  • 分享电子邮件(纯文本) -使用纯文本格式的电子邮件通知新的文件共享
  • 找回密码邮件 - 密码重置电子邮件
  • 活动通知邮件 - 需要用户在个人页面启用活动通知
除了提供的电子邮件模板,此功能使您能够预配置电子邮件的模板。

修改电子邮件模板的步骤

  1. 进入管理页面
  2. 向下找到到邮件模板选项
  3. 从下拉菜单中选择模板
  4. 按你所想的修改它吧!
该模板是用PHP和HTML编写成的,并且已经使用了了相关的变量,如用户名,分享链接和文件名。你可以,如果你细心,可以编辑这些即使不知道PHP或HTML;最好不要碰这些代码,但可以编辑邮件的正文部分。例如,这丢失的密码邮件模板:
<?php

echo str_replace('{link}', $_[‘link’], $l->t(‘Use the following link to reset your password: {link}'));

你可以修改这个模板的文本部分,比如把它改成中文:把 
Use the following link to reset yourpassword:
改做:点击下面的链接来重置你的密码。如果你并不想要重置密码,请忽略它。

修改后就是下面这样:

<?php

   echo str_replace('{link}', $_['link'], $l->t('点击下面的链接来重置你的密码。
如果你并不想要重置密码,请忽略它。 {link}'));

再次重申,要非常小心地做出修改,因为这种消息文本,即使是最小的编码错误将损坏模板。

您可以在模板文本框中直接编辑模板,也可以复制并粘贴到文本编辑器进行修改,当你完成修改后复制并粘贴回模板文本框。

在config.php设定邮件服务器参数

如果你愿意,你可以在 
config/config.php
.中修改你的邮件服务器参数. 下面的是SMTP,PHP的Sendmail和Qmail的例子。

SMTP

如果要使用本地或远程SMTP服务器,需要输入服务器的名称或IP地址来发送电子邮件,可选择后跟冒号分隔的端口号,例如
:425
。如果没有给出此值将使用默认端口25 / TCP,除非你修改mail_smtpport参数。可以同时使用多带服务器,用像下面一样分号隔开
<?php

“mail_smtpmode” => “smtp”, “mail_smtphost” => “smtp-1.server.dom;smtp-2.server.dom:425”, “mail_smtpport” => 25,

或者这样:
<?php

“mail_smtpmode” => “smtp”, “mail_smtphost” => “smtp.server.dom”, “mail_smtpport” => 425,

如果SMTP服务器上运行了恶意软件或垃圾邮件扫描仪,你有必要设置SMTP超时时长,至少为30s:
<?php

“mail_smtptimeout” => 30,

如果SMTP服务器使用不安全的连接,可使用默认设置:
<?php

“mail_smtpsecure” => ‘’,

如果SMTP服务器只接受安全连接,你可以从以下两个方式之间进行选择:

SSL

安全连接将使用端口465 / TCP,并启用SMTP超时:
<?php

“mail_smtphost” => “smtp.server.dom:465”, “mail_smtpsecure” => ‘ssl’,

TLS

安全连接将使用默认端口25 / TCP的协议,启用STARTTLS:
<?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 is.

最后关键的一点:如果SMTP服务器不需要身份验证,将使用默认值:

<?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.

如果需要SMTP认证,就必须设置所需的用户名和密码,可以使用LOGIN(默认)或PLAIN的验证方式,你可以在它们之间任意选择。

<?php

“mail_smtpauth” => true, “mail_smtpauthtype” => “LOGIN”, “mail_smtpname” => “username”, “mail_smtppassword” => “password”,

PHP mail

如果你想使用PHP函数发送邮件,在服务器上必须有一个已安装并正常工作的邮件系统。PHP发送电子邮件功能可以在php.ini文件中设置。 (在* nix系统,这将很可能是使用Sendmail。)ownCloud应该能够发送电子邮件。
<?php

“mail_smtpmode” => “php”, “mail_smtphost” => “127.0.0.1”, “mail_smtpport” => 25, “mail_smtptimeout” => 10, “mail_smtpsecure” => “”, “mail_smtpauth” => false, “mail_smtpauthtype” => “LOGIN”, “mail_smtpname” => “”, “mail_smtppassword” => “”,

Sendmail

如果你想使用著名的Sendmail程序发送邮件,在你的 *nix服务器上必须有一个已安装并且在工作的邮件系统。sendmail的二进制文件(/ usr / sbin/ sendmail的)通常是系统的一部分。 ownCloud应该能够发送电子邮件。
<?php

“mail_smtpmode” => “sendmail”, “mail_smtphost” => “127.0.0.1”, “mail_smtpport” => 25, “mail_smtptimeout” => 10, “mail_smtpsecure” => “”, “mail_smtpauth” => false, “mail_smtpauthtype” => “LOGIN”, “mail_smtpname” => “”, “mail_smtppassword” => “”,

qmail

如果你想使用的qmail程序发送电子邮件,就必须有一个安装并运行qmail的邮件系统在服务器上。 sendmail的二进制文件(在/ var / qmail/ bin/ sendmail里)将被用于发送电子邮件。 ownCloud应该能够发送电子邮件。
<?php

“mail_smtpmode” => “qmail”, “mail_smtphost” => “127.0.0.1”, “mail_smtpport” => 25, “mail_smtptimeout” => 10, “mail_smtpsecure” => “”, “mail_smtpauth” => false, “mail_smtpauthtype” => “LOGIN”, “mail_smtpname” => “”, “mail_smtppassword” => “”,

发送测试邮件

为了测试邮件设置,在你的个人设置中填写你的邮箱,然后点击管理界面的电子邮件设置器中的“发送邮件”按钮。

 

故障排除

如果你无法发送邮件,可以启用调试模式来查看错误信息。在
config/config.php
中使用
mail_smtpdebug parameter
参数来切换调试模式:

启用调试模式

如果您无法发送电子邮件,可以通过启用mail_smtpdebug参数,可以激活进一步调试消息是有用的:

<?php

“mail_smtpdebug” => true,

按下发送电子邮件按钮,如前所述,会有SMTP -> get_lines(): ...消息出现在屏幕上。这是正常情况,可以忽略。

附:邮件服务器常用端口表:

  • smtp未加密端口:/25/tcp
  • pop3未加密端口:110/tcp/udp
  • imap4未加密端口:143/tcp/udp
  • ssmtp加密端口:465/tcp
  • imaps机密端口:993/tcp/udp
  • pop3s加密端口995/tcp/udp


comments powered by Disqus