summaryrefslogtreecommitdiff
path: root/conf.d/040_transports.conf
blob: 01de42913fb9ace5455c5ad339f55ea97119f934 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################

# A transport is used only when referenced from a router that successfully
# handles an address.

begin transports


# This transport is used for delivering messages over SMTP connections.
# Refuse to send any message with over-long lines, which could have
# been received other than via SMTP. The use of message_size_limit to
# enforce this is a red herring.

remote_smtp:
  driver             = smtp
  message_size_limit = ${if > {$max_received_linelength}{998} {1}{0}}


# Sign outgoing mail with DKIM.
# Only mail sent by authenticated users is signed, leaving forwarded mail
# untouched.
# The "Sender" and "List-*" headers are excluded from the signature process
# if they are not already present, allowing mailing list servers to forward
# messages without invalidating the signature.
# Default _DKIM_SIGN_HEADERS:
# https://github.com/Exim/exim/blob/042e558/src/src/pdkim/pdkim.h#L29-L36
# ref: https://www.spinics.net/lists/linux-media/msg138870.html
# ref: https://lists.gt.net/exim/users/110610#110610

DKIM_SIGN_HEADERS = From:=Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:=List-Id:=List-Help:=List-Unsubscribe:=List-Subscribe:=List-Post:=List-Owner:=List-Archive

DKIM_PRIVATE_KEY_FILE = DKIMDIR/$dkim_selector._domainkey.$dkim_domain.pem

signed_smtp:
  driver             = smtp
  message_size_limit = ${if > {$max_received_linelength}{998} {1}{0}}
  dkim_domain        = ${if def:authenticated_id {$sender_address_domain}}
  dkim_selector      = $primary_hostname
  dkim_private_key   = ${if exists{DKIM_PRIVATE_KEY_FILE}{DKIM_PRIVATE_KEY_FILE}{0}}
  dkim_canon         = relaxed
  dkim_strict        = yes
  dkim_sign_headers  = DKIM_SIGN_HEADERS


# This transport is used for local delivery to user mailboxes in traditional
# BSD mailbox format. By default it will be run under the uid and gid of the
# local user, and requires the sticky bit to be set on the /var/mail directory.
# Some systems use the alternative approach of running mail deliveries under a
# particular group instead of using the sticky bit. The commented options below
# show how this can be done.

#local_delivery:
# driver = appendfile
# file = /var/mail/$local_part
# delivery_date_add
# envelope_to_add
# return_path_add
# group = mail
# mode = 0660


remote_lmtp:
  driver             = smtp
  protocol           = lmtp
  port               = 24
  allow_localhost


# This transport is used for handling pipe deliveries generated by alias or
# .forward files. If the pipe generates any standard output, it is returned
# to the sender of the message as a delivery error. Set return_fail_output
# instead of return_output if you want this to happen only when the pipe fails
# to complete normally. You can set different transports for aliases and
# forwards if you want to - see the references to address_pipe in the routers
# section above.

address_pipe:
  driver              = pipe
  return_output


# This transport is used for handling deliveries directly to files that are
# generated by aliasing or forwarding.

address_file:
  driver               = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add


# This transport is used for handling autoreplies generated by the filtering
# option of the userforward router.

#address_reply:
# driver = autoreply