summaryrefslogtreecommitdiff
path: root/config/mail_room.yml
blob: aed55f74eab5e5acb1e19cc5e1489dfc559b1644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
:mailboxes:
<%
require "yaml"
require "json"
require_relative "lib/gitlab/redis_config"

rails_env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"

config_file = ENV["MAIL_ROOM_GITLAB_CONFIG_FILE"] || "config/gitlab.yml"
if File.exists?(config_file)
  all_config = YAML.load_file(config_file)[rails_env]

  config = all_config["incoming_email"] || {}
  config['enabled']    = false    if config['enabled'].nil?
  config['port']       = 143      if config['port'].nil?
  config['ssl']        = false    if config['ssl'].nil?
  config['start_tls']  = false    if config['start_tls'].nil?
  config['mailbox']    = "inbox"  if config['mailbox'].nil?

  if config['enabled'] && config['address'] && config['address'].include?('%{key}')
    redis_url = Gitlab::RedisConfig.new(rails_env).url
    %>
    -
      :host: <%= config['host'].to_json %>
      :port: <%= config['port'].to_json %>
      :ssl: <%= config['ssl'].to_json %>
      :start_tls: <%= config['start_tls'].to_json %>
      :email: <%= config['user'].to_json %>
      :password: <%= config['password'].to_json %>

      :name: <%= config['mailbox'].to_json %>

      :delete_after_delivery: true

      :delivery_method: sidekiq
      :delivery_options:
        :redis_url: <%= redis_url.to_json %>
        :namespace: resque:gitlab
        :queue: incoming_email
        :worker: EmailReceiverWorker

      :arbitration_method: redis
      :arbitration_options:
        :redis_url: <%= redis_url.to_json %>
        :namespace: mail_room:gitlab
  <% end %>
<% end %>