IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ownCloud配置邮件服务器

    usity发表于 2016-10-17 06:02:33
    love 0

    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


沪ICP备19023445号-2号
友情链接