配置服务台

默认情况下,服务台在新项目中处于活动状态。如果未激活,您可以在项目设置中进行激活。

先决条件:

在您的项目中启用服务台:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 服务台
  4. 打开 启用服务台 开关。
  5. 可选。填写字段。
    • 添加后缀到您的服务台电子邮件地址。
    • 如果 附加到所有服务台生成议题的模板 下面的列表是空的,请在您的存储库中创建一个描述模板
  6. 选择 保存更改

现在已为此项目启用服务台。如果有人向 用于服务台的电子邮件地址 下的可用地址发送电子邮件,极狐GitLab使用电子邮件的内容创建了一个机密议题。

服务台词汇表

本词汇表提供了与服务台相关的术语的定义。

Term Definition
外部参与者 没有极狐GitLab帐户的用户只能通过电子邮件与问题或服务台票证进行交互。
请求者 创建服务台工单或使用/convert_to_ticket/convert_to_ticket快速操作添加为请求者的外部参与者。

提高项目的安全性

要提高服务台项目的安全性,您应该:

  • 在您的电子邮件系统为服务台邮件地址配置一个别名,以后方便更改。
  • 在您的实例中开启 Akismet 添加垃圾邮件检查。那些未被阻止的垃圾电子邮件可能会导致创建许多垃圾邮件议题。

自定义发送给外部参与者的电子邮件

  • 在极狐GitLab 15.9中引入了 UNSUBSCRIBE_URL、SYSTEM_HEADER、SYSTEM_FOOTER 和 ADDITIONAL_TEXT 占位符。
  • 在极狐GitLab 16.0中引入了 %{ISSUE_DESCRIPTION}。
  • 在极狐GitLab 16.1中引入%{ISSUE_URL}。

当以下情况发生时,会向外部参与者发送电子邮件:

  • 请求者通过电子邮件提交新工单给服务台。
  • 外部参与者被添加到服务台工单中。
  • 在服务台工单上添加了新的公开评论。
    • 编辑评论不会触发新的电子邮件发送。

您可以通过服务台电子邮件模板自定义这些电子邮件消息的正文。这些模板可以包含极狐GitLab 风格的 Markdown一些 HTML 标签。例如,您可以格式化电子邮件,以包含符合您组织品牌指南的头部和页脚。您还可以包含以下占位符,以显示与服务台工单或您的极狐GitLab 实例相关的动态内容。

占位符 thank_you.mdnew_participant new_note.md 描述
%{ISSUE_ID} Yes Yes 工单 IID。
%{ISSUE_PATH} Yes Yes 附加工单 IID 的项目路径。
%{ISSUE_URL} Yes Yes 工单的 URL。仅当项目公开且工单不保密时,外部参与者才可以查看工单(服务台工单默认为保密)。
%{ISSUE_DESCRIPTION} Yes Yes 工单描述。如果用户编辑了描述,它可能包含不打算传递给外部参与者的敏感信息。请谨慎使用此占位符,理想情况下只有在您从不修改描述或您的团队已了解模板设计的情况下使用。
%{UNSUBSCRIBE_URL} Yes Yes 取消订阅 URL。了解如何取消作为外部参与者订阅 and 在极狐GitLab 的通知电子邮件中使用取消订阅标头
%{NOTE_TEXT} No Yes 用户添加到工单的新评论。请注意将此占位符包含在new_note.md 中。否则,外部参与者可能永远看不到其服务台工单上的更新。

感谢电子邮件

当请求者通过服务台提交问题时,极狐GitLab会发送一封感谢电子邮件。如果不进行其他配置,极狐GitLab 会发送默认的感谢电子邮件。

要创建自定义电子邮件模板:

  1. 在你的仓库的.gitlab/service_desk_templates/目录中,创建一个名为thank_you.md的文件。
  2. 使用文本、GitLab Flavored Markdown,一些选定的 HTML 标签和占位符填充 Markdown 文件,以定制对服务台请求者的回复。

新参与者电子邮件

  • 极狐GitLab 17.0 中引入了 new_participant 电子邮件。

external participant添加到工单时,极狐GitLab会发送一封新参与者电子邮件,让他们知道他们是对话的一部分。无需额外配置,极狐GitLab 会发送默认的新参与者电子邮件。

要创建自定义新参与者电子邮件模板:

  1. 在你的仓库的.gitlab/service_desk_templates/目录中,创建一个名为thank_you.md的文件。
  2. 使用文本、GitLab Flavored Markdown,一些选定的 HTML 标签和占位符填充 Markdown 文件,以定制对服务台请求者的回复。

新笔记邮件

当服务台工单有新的公开评论时,极狐GitLab会发送新注释电子邮件。无需额外配置,极狐GitLab会发送评论内容。

为了使您的电子邮件保持品牌形象,您可以创建自定义的新笔记电子邮件模板。具体操作如下:

  1. 在你的仓库的.gitlab/service_desk_templates/目录中创建一个名为new_note.md的文件。
  2. 使用文本、GitLab Flavored Markdown,一些选定的 HTML 标签和占位符填充 Markdown 文件,以定制新的笔记电子邮件。请务必在模板中包含%{NOTE_TEXT},以确保电子邮件收件人可以阅读评论的内容。

实例范围内的电子邮件页眉、页脚和附加文本

实例管理员可以为极狐GitLab实例添加一个小的页眉或页脚,并使它们在电子邮件模板中可见。有关详细信息,

实例管理员可以为极狐GitLab实例添加头部、页脚或附加文本,并将其应用于从极狐GitLab发送的所有电子邮件。如果您使用自定义的thank_you.mdnew_participantnew_note.md文件来包含这些内容,请在模板中添加%{SYSTEM_HEADER}%{SYSTEM_FOOTER}%{ADDITIONAL_TEXT}

有关更多信息,请参阅系统页眉和页脚消息自定义附加文本

为服务台议题使用自定义模板

您可以为每个项目选择一个议题描述模板,他们会附加到每个新的服务台议题的描述中。

您可以设置不同级别的描述模板:

模板是继承的。例如,在项目中,您还可以访问为实例或项目的父组设置的模板。

先决条件:

要将自定义描述模板与服务台一起使用:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 服务台
  4. 附加到所有服务台生成议题的模板 下拉列表中,搜索或选择您的模板。

支持机器人用户

在后台,由创建议题的特殊支持机器人用户为服务台工作。该用户不是计费用户,因此不计入许可证限制计数。

在极狐GitLab 16.0及更早版本中,通过服务台电子邮件生成的评论会显示GitLab Support Bot 作为作者。在极狐GitLab 16.1 及之后版本中,这些评论会显示发送电子邮件的用户的电子邮件地址。此功能仅适用于极狐GitLab 16.1及之后版本中的评论。

更改支持机器人的显示名称

您可以更改支持机器人用户的显示名称。从服务台发送的电子邮件在From标头中使用此名称。默认显示名称为GitLab Support Bot

要编辑自定义电子邮件显示名称:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 服务台
  4. 电子邮件显示名称 下方,输入一个新名称。
  5. 选择 保存更改

默认工单可见性

  • 在极狐GitLab 17.2中引入。

新工单默认是保密的,因此只有至少具有报告者角色的项目成员才能查看它们。

在私有和内部项目中,您可以配置极狐GitLab,使新工单默认不保密,任何项目成员都可以查看它们。

在公共项目中,此设置不可用,因为新工单默认始终是保密的。

先决条件:

  • 您必须至少具有项目的维护者角色。

禁用此设置的步骤:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 服务台
  4. 清除 新工单默认保密 复选框。
  5. 选择 保存更改

当外部参与者发表评论时重新打开问题

  • 在极狐GitLab 16.7中引入。

您可以配置极狐GitLab,当外部参与者通过电子邮件对问题添加新评论时,重新打开已关闭的问题。这还会添加一条内部评论,其中提及问题的受让人并为他们创建待办事项。

先决条件:

  • 您必须至少拥有该项目的维护者角色。

要启用此设置:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 服务台
  4. 选择 从外部参与者的新注释上重新打开问题 复选框。
  5. 选择 保存更改

自定义电子邮件地址

  • 在极狐GitLab 16.3中,引入名为service_desk_custom_email,默认情况下是禁用的。
  • 在极狐GitLab 16.4中,jihulab.com 和自管理的实例已启用此功能。
  • 在极狐GitLab 16.6中,引入了选择 SMTP 身份验证方法的功能。
  • 在极狐GitLab 16.7中,移除了service_desk_custom_email标志
  • 在极狐GitLab 16.7中,自管理的极狐GitLab实例允许在本地网络上使用 SMTP 主机。

配置自定义电子邮件地址以显示为支持通信的发件人。使用他们熟悉的域名来维护品牌形象并增强支持请求者的信心。

此功能处于测试阶段。测试版功能尚未投入生产,但在发布之前不太可能发生重大变化。

先决条件

您可以为每个项目使用一个自定义电子邮件地址,并且该地址在整个实例中必须是唯一的。

您要使用的自定义电子邮件地址必须满足以下所有要求:

  • 您可以设置电子邮件转发。
  • 转发的电子邮件保留原始的发件人From头部。
  • 您的服务提供商必须支持子地址功能。电子邮件地址由本地部分(@之前的部分)和域名部分组成。

    通过电子邮件子地址功能,您可以通过在本地部分添加一个加号(+)符号后跟任意文本来创建电子邮件地址的唯一变体。例如,对于电子邮件地址support@example.com,通过发送电子邮件到support+1@example.com来检查是否支持子地址功能。该邮件应该会出现在您的收件箱中。

  • 您必须拥有SMTP凭据(理想情况下,您应使用应用密码)。用户名和密码使用高级加密标准(AES)和256位密钥存储在数据库中。
  • SMTP 主机必须能够从您的极狐GitLab实例的网络(极狐GitLab自管理)或公共互联网(极狐GitLab SaaS)解析。
  • 您必须至少拥有项目的维护者角色。
  • 项目必须配置了服务台。

配置自定义电子邮件地址

当您想使用自己的电子邮件地址发送服务台电子邮件时,请配置并验证自定义电子邮件地址。

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > 通用
  3. 展开 服务台找到配置自定义电子邮件地址部分。
  4. 记下此项目所显示的服务台地址,并与您的电子邮件提供商(例如,Gmail)一起设置从自定义电子邮件地址到服务台地址的电子邮件转发。
  5. 返回极狐GitLab,完成字段。
  6. 选择 保存并测试连接

验证

  1. 完成配置后,所有项目所有者和保存自定义电子邮件配置的管理员将收到通知电子邮件。
  2. 使用提供的SMTP凭据,向自定义电子邮件地址(带有子地址部分)发送验证邮件。该邮件包含一个验证令牌。当电子邮件转发设置正确且所有先决条件满足时,邮件将转发到您的服务台地址并被极狐GitLab接收。极狐GitLab会检查以下条件:

    a. 极狐GitLab能够使用SMTP凭据发送电子邮件。

    b. 支持子地址功能(带有 +verify 子地址部分)。

    c. 转发后保留From头部。

    d. 验证令牌正确。

    e. 在30分钟内收到电子邮件。

通常,整个过程只需几分钟。

如果您希望随时取消验证或验证失败,可以选择重置自定义电子邮件。设置页面将相应更新并显示验证的当前状态。SMTP凭据将被删除,您可以重新开始配置。

无论验证成功还是失败,所有项目所有者和触发验证过程的用户都会收到一封通知电子邮件,告知验证结果。如果验证失败,邮件中还会包含失败的原因详情。

如果验证成功,自定义电子邮件地址就可以使用了。您现在可以启用使用自定义电子邮件地址发送服务台邮件

排除配置故障

配置自定义电子邮件时,您可能会遇到以下问题。

凭证无效

您可能会收到一个错误,提示使用了无效的凭据。

当SMTP服务器返回身份验证未成功时,就会出现这种情况。

要排查此问题:

  1. 检查您的SMTP凭据,特别是用户名和密码。
  2. 有时极狐GitLab无法自动选择SMTP服务器支持的身份验证方法。您可以: - 尝试可用的身份验证方法(PlainLoginCRAM-MD5)。 - 使用 swaks 命令行工具检查您的 SMTP 服务器支持的身份验证方法:

a. 运行以下命令,使用您的凭据,并查找以250-AUTH开头的行:

  swaks --to user@example.com \
        --from support@example.com \
        --auth-user support@example.com \
        --server smtp@example.com:587 \
        -tls-optional \
        --auth-password your-app-password

b. 在自定义电子邮件设置表单中选择一种受支持的身份验证方法。

转发目标不正确

您可能会收到一个错误,提示使用了不正确的转发目标。

当验证电子邮件被转发到与在自定义电子邮件配置表单中显示的项目特定服务台地址不同的电子邮件地址时,就会发生这种情况。

您必须使用从incoming_email生成的服务台地址。转发到从service_desk_email生成的额外服务台别名地址不被支持,因为它不支持所有的电子邮件回复功能。

要排查此问题:

  1. 找到正确的电子邮件地址进行转发。您可以: - 注意所有项目所有者和触发验证过程的用户收到的验证结果邮件中的地址。 - 复制从服务台邮件地址转发电子邮件,并粘贴到自定义电子邮件设置表单中的输入框。
  2. 将所有邮件转发到正确的目标电子邮件地址。

启用或禁用自定义电子邮件地址

在自定义电子邮件地址验证后,管理员可以启用或禁用使用自定义电子邮件地址发送服务台邮件。

启用自定义电子邮件地址:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > 通用
  3. 展开 服务台
  4. 打开 启用自定义电子邮件 开关。此时服务台发送给外部参与者的邮件将使用 SMTP 凭据。

禁用自定义电子邮件地址:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > 通用
  3. 展开 服务台
  4. 关闭 启用自定义电子邮件 开关。因为您已经设置了电子邮件转发,发送到您的自定义电子邮件地址的邮件将继续被处理,并作为服务台工单出现在您的项目中。

此时,服务台发送给外部参与者的邮件将使用极狐GitLab实例的默认外发邮件配置。

更改或删除自定义电子邮件配置

要更改自定义电子邮件配置,您必须重置并删除它,然后重新配置自定义电子邮件。

要在流程中的任何步骤重置配置,请选择重置自定义电子邮件。然后从数据库中删除凭据。

自定义电子邮件回复地址

外部参与者可以通过电子邮件回复服务台工单。极狐GitLab使用电子邮件回复地址,其中包含与工单对应的32个字符的回复密钥。配置自定义电子邮件后,极狐GitLab会从该电子邮件生成回复地址。

已知问题

  • 一些服务提供商不再允许SMTP连接。通常,您可以按用户启用它们并创建应用密码。
  • Microsoft Exchange不会保留From头部,因此无法使用同一租户的自定义电子邮件。作为解决方法:

    • 在极狐GitLab SaaS上,使用传输规则将来自自定义电子邮件地址的邮件转发到极狐GitLab SaaS的服务台邮件地址。转发到当前租户以外的电子邮件地址会保留原始的From头部。
    • 在极狐GitLab自管理实例上,可以使用子域名或来自其他服务提供商的不同域名作为自定义电子邮件地址,或使用极狐GitLab实例的incoming_emailservice_desk_email

使用其他服务台别名电子邮件

您可以在实例中使用服务台的其他别名电子邮件地址。

为此,您必须在实例配置中配置service_desk_email。您还可以配置自定义后缀,以替换子寻址部分中的默认-issue-部分。

配置服务台别名电子邮件

note 在jihulab.com上,已配置自定义邮箱,电子邮件地址为contact-project+%{key}@incoming.gitlab.com。您仍然可以在项目设置中配置自定义后缀

服务台默认使用传入电子邮件配置。但是,若要为服务台设置单独的电子邮件地址,请在项目设置中为service_desk_email配置自定义后缀

先决条件:

  • 地址必须在用户部分@前包含+%{key}占位符。该占位符用于标识应创建问题的项目。
  • service_desk_emailincoming_email配置必须始终使用独立的邮箱,以确保服务台邮件能够正确处理。

配置使用IMAP的服务台自定义邮箱,将以下片段完整地添加到您的配置文件中:

::Tabs

:::TabTitle Linux 软件包 (Omnibus)

note 在极狐GitLab 15.3及更高版本中,服务台默认使用webhook(内部 API 调用),而不是将任务加入Sidekiq队列。要在运行极狐GitLab 15.3的Linux安装包中使用webhook,您必须生成一个秘密文件。在极狐GitLab 15.4中,重新配置Linux安装包会自动生成该秘密文件,因此不需要配置秘密文件设置。
gitlab_rails['service_desk_email_enabled'] = true
gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@gmail.com"
gitlab_rails['service_desk_email_email'] = "project_contact@gmail.com"
gitlab_rails['service_desk_email_password'] = "[REDACTED]"
gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
gitlab_rails['service_desk_email_idle_timeout'] = 60
gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
gitlab_rails['service_desk_email_port'] = 993
gitlab_rails['service_desk_email_ssl'] = true
gitlab_rails['service_desk_email_start_tls'] = false

:::TabTitle Self-compiled (source)

service_desk_email:
  enabled: true
  address: "project_contact+%{key}@example.com"
  user: "project_contact@example.com"
  password: "[REDACTED]"
  host: "imap.gmail.com"
  delivery_method: webhook
  secret_file: .gitlab-mailroom-secret
  port: 993
  ssl: true
  start_tls: false
  log_path: "log/mailroom.log"
  mailbox: "inbox"
  idle_timeout: 60
  expunge_deleted: true

::EndTabs

配置选项与配置相同传入电子邮件.

使用加密凭证

  • 在极狐GitLab 15.9中引入。

您可以选择使用加密文件来存储传入电子邮件凭据,而不必将服务台电子邮件凭据以纯文本形式存储在配置文件中。

先决条件:

  • 要使用加密凭证,您必须首先启用加密配置

加密文件支持的配置项有:

  • 用户
  • 密码

::Tabs

:::TabTitle Linux 软件包 (Omnibus)

  1. 如果最初/etc/gitlab/gitlab.rb中的服务台配置如下所示:

    gitlab_rails['service_desk_email_email'] = "service-desk-email@mail.example.com"
    gitlab_rails['service_desk_email_password'] = "examplepassword"
    
  2. 编辑加密的机密:

    sudo gitlab-rake gitlab:service_desk_email:secret:edit EDITOR=vim
    
  3. 输入服务台电子邮件机密的未加密内容:

    user: 'service-desk-email@mail.example.com'
    password: 'examplepassword'
    
  4. 编辑/etc/gitlab/gitlab.rb并删除服务台设置的emailpassword
  5. 保存文件并重新配置极狐GitLab:

    sudo gitlab-ctl reconfigure
    

:::TabTitle Helm 图标 (Kubernetes)

使用Kubernetes密钥存储服务台电子邮件密码。

:::TabTitle Docker

  1. 如果最初您的docker-compose.yml中的服务台配置如下所示:

    version: "3.6"
    services:
      gitlab:
        image: 'gitlab/gitlab-ee:latest'
        restart: always
        hostname: 'gitlab.example.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            gitlab_rails['service_desk_email_email'] = "service-desk-email@mail.example.com"
            gitlab_rails['service_desk_email_password'] = "examplepassword"
    
  2. 进入容器并编辑加密的秘密:

    sudo docker exec -t <container_name> bash
    gitlab-rake gitlab:service_desk_email:secret:edit EDITOR=editor
    
  3. 输入服务台机密的未加密内容:

    user: 'service-desk-email@mail.example.com'
    password: 'examplepassword'
    
  4. 编辑docker-compose.yml并删除service_desk设置中的emailpassword
  5. 保存文件并重新启动极狐GitLab:

    docker compose up -d
    

:::TabTitle 自编译 (源码)

  1. 如果最初/home/git/gitlab/config/gitlab.yml中的服务台配置如下所示:

    production:
      service_desk_email:
        user: 'service-desk-email@mail.example.com'
        password: 'examplepassword'
  2. 编辑加密的秘密:

    bundle exec rake gitlab:service_desk_email:secret:edit EDITOR=vim RAILS_ENVIRONMENT=production
    
  3. 输入服务台机密的未加密内容:

    user: 'service-desk-email@mail.example.com'
    password: 'examplepassword'
    
  4. 编辑docker-compose.yml并删除service_desk设置中的emailpassword
  5. 保存文件并重新启动极狐GitLab和Mailroom。

    # For systems running systemd
    sudo systemctl restart gitlab.target
       
    # For systems running SysV init
    sudo service gitlab restart
    

::EndTabs

配置服务台别名电子邮件的后缀

您可以在项目的服务台设置中设置自定义后缀。

后缀只能包含小写字母(a-z)、数字(0-9)或下划线(_)。

配置后,自定义后缀将创建一个新的服务台电子邮件地址,由service_desk_email_address设置和以下格式的键组成:<project_full_path>-<custom_suffix>

先决条件:

  • 您必须已配置服务台别名电子邮件。

配置步骤:

  1. 在左侧边栏,选择搜索或转到并找到您的项目。
  2. 选择设置 > 常规
  3. 展开服务台
  4. 电子邮件地址后缀下,输入要使用的后缀。
  5. 选择保存更改

例如,假设mygroup/myproject项目的服务台设置如下:

  • 电子邮件地址后缀 设置为support
  • 服务台邮件地址 配置为contact+%{key}@example.com

该项目的服务台邮件地址为:contact+mygroup-myproject-support@example.com。此时传入的电子邮件地址仍然有效。

如果您没有配置自定义后缀,则默认使用项目标识符来识别项目。

在多节点环境中配置电子邮件提取

多节点环境是一种设置,其中 GitLab 跨多台服务器运行,以实现可扩展性、容错性和性能。

极狐GitLab 使用一个名为mail_room的单独进程从coming_emailservice_desk_email邮箱中提取新的未读电子邮件。

Helm 图表 (Kubernetes)

GitLab Helm chart 由多个子 chart 组成,其中一个是 Mailroom subchart。配置incoming_email通用设置service_desk_email通用设置

Linux 软件包(Omnibus)

在多节点 Linux 包安装环境中,仅在一个节点上运行mail_room。可以在单个rails节点(例如application_role)上运行,也可以完全单独运行。

设置所有节点

  1. 在每个节点上添加incoming_emailservice_desk_email的基本配置,以在Web UI和生成的电子邮件中呈现电子邮件地址。

    /etc/gitlab/gitlab.rb中找到incomingback_emailservice_desk_email部分

    ::Tabs

    :::TabTitleincoming_email

    gitlab_rails['incoming_email_enabled'] = true
    gitlab_rails['incoming_email_address'] = "incoming+%{key}@example.com"
    

    :::TabTitle service_desk_email

    gitlab_rails['service_desk_email_enabled'] = true
    gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@example.com"
    

    ::EndTabs

  2. 极狐GitLab提供两种方法将电子邮件从mail_room传输到GitLab应用程序。您可以单独配置每个电子邮件设置的delivery_method

    1. 推荐:webhook(极狐GitLab 15.3及更高版本中的默认方法)通过 API POST 请求将电子邮件负载发送到您的 GitLab 应用程序。它使用共享令牌进行身份验证。如果您选择这种方法,请确保 mail_room 进程能够访问 API 端点,并在所有应用节点之间分发共享令牌。

      ::Tabs

      :::TabTitle incoming_email

      gitlab_rails['incoming_email_delivery_method'] = "webhook"
            
      # The URL that mail_room can contact. You can also use an internal URL or IP,
      # just make sure mail_room can access the GitLab API with that address.
      # Do not end with "/".
      gitlab_rails['incoming_email_gitlab_url'] = "https://gitlab.example.com"
            
      # The shared secret file that should contain a random token. Make sure it's the same on every node.
      gitlab_rails['incoming_email_secret_file'] = ".gitlab_mailroom_secret"
      

      :::TabTitle service_desk_email

      gitlab_rails['service_desk_email_delivery_method'] = "webhook"
            
      # The URL that mail_room can contact. You can also use an internal URL or IP,
      # just make sure mail_room can access the GitLab API with that address.
      # Do not end with "/".
            
      gitlab_rails['service_desk_email_gitlab_url'] = "https://gitlab.example.com"
            
      # The shared secret file that should contain a random token. Make sure it's the same on every node.
      gitlab_rails['service_desk_email_secret_file'] = ".gitlab_mailroom_secret"
      

      ::EndTabs

    2. 在极狐GitLab 16.0中已弃用,计划在 18.0 中删除):如果您在设置webhook时遇到问题,请使用sidekiq通过 Redis 将电子邮件负载直接发送到 GitLab Sidekiq。

      ::Tabs

      :::TabTitle incoming_email

      # It uses the Redis configuration to directly add Sidekiq jobs
      gitlab_rails['incoming_email_delivery_method'] = "sidekiq"
      

      :::TabTitle service_desk_email

      # It uses the Redis configuration to directly add Sidekiq jobs
      gitlab_rails['service_desk_email_delivery_method'] = "sidekiq"
      

      ::EndTabs

  3. 在所有不应运行电子邮件接收的节点上禁用mail_room。例如,在/etc/gitlab/gitlab.rb中:

    mailroom['enable'] = false
    
  4. 重新配置极狐GitLab 以使更改生效。

设置单个电子邮件提取节点

设置所有节点并禁用mail_room进程后,在单个节点上启用mail_room。此节点定期轮询邮箱中的Incoming_emailService_desk_email,并将新的未读电子邮件移动到 GitLab。

1.选择一个可以额外处理电子邮件提取的现有节点。

1.为incoming_emailservice_desk_email添加完整的配置和凭证

1.在此节点上启用mail_room。例如,在/etc/gitlab/gitlab.rb中:

mailroom['enable'] = true

1.在此节点上重新配置极狐GitLab,以使更改生效。