diff options
author | Hsieh Chin Fan <typebrook@gmail.com> | 2022-02-02 13:34:47 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-11-30 21:09:29 +0800 |
commit | 9934dd538b0ce116e3b1600272cb46369b082246 (patch) | |
tree | 2f28c6c362201151eaf8218e566479ed7eb72070 /postfix |
init commit
Diffstat (limited to 'postfix')
-rw-r--r-- | postfix/Makefile | 9 | ||||
-rw-r--r-- | postfix/aliases | 268 | ||||
-rw-r--r-- | postfix/main.cf | 701 | ||||
-rw-r--r-- | postfix/master.cf | 141 | ||||
-rw-r--r-- | postfix/opendkim/opendkim.conf | 6 | ||||
-rw-r--r-- | postfix/virtual | 328 |
6 files changed, 1453 insertions, 0 deletions
diff --git a/postfix/Makefile b/postfix/Makefile new file mode 100644 index 0000000..f808d21 --- /dev/null +++ b/postfix/Makefile | |||
@@ -0,0 +1,9 @@ | |||
1 | .ONESHELL: | ||
2 | SHELL := bash | ||
3 | |||
4 | config: | ||
5 | shopt -s extglob | ||
6 | ln -sf `pwd`/!(opendkim) /etc/postfix | ||
7 | mkdir -p /etc/opendkim/ | ||
8 | cp `pwd`/opendkim/* /etc/opendkim/ | ||
9 | chown opendkim:opendkim /etc/opendkim/* | ||
diff --git a/postfix/aliases b/postfix/aliases new file mode 100644 index 0000000..04a104f --- /dev/null +++ b/postfix/aliases | |||
@@ -0,0 +1,268 @@ | |||
1 | # | ||
2 | # Sample aliases file. Install in the location as specified by the | ||
3 | # output from the command "postconf alias_maps". Typical path names | ||
4 | # are /etc/aliases or /etc/mail/aliases. | ||
5 | # | ||
6 | # >>>>>>>>>> The program "newaliases" must be run after | ||
7 | # >> NOTE >> this file is updated for any changes to | ||
8 | # >>>>>>>>>> show through to Postfix. | ||
9 | # | ||
10 | pham: pham | ||
11 | |||
12 | # Person who should get root's mail. Don't receive mail as root! | ||
13 | root: pham | ||
14 | |||
15 | # Basic system aliases -- these MUST be present | ||
16 | MAILER-DAEMON: postmaster | ||
17 | postmaster: pham | ||
18 | |||
19 | # General redirections for pseudo accounts | ||
20 | bin: pham | ||
21 | daemon: pham | ||
22 | named: pham | ||
23 | nobody: pham | ||
24 | uucp: pham | ||
25 | www: pham | ||
26 | ftp-bugs: pham | ||
27 | postfix: pham | ||
28 | |||
29 | # Put your local aliases here. | ||
30 | |||
31 | # Well-known aliases | ||
32 | manager: pham | ||
33 | dumper: pham | ||
34 | operator: pham | ||
35 | abuse: postmaster | ||
36 | |||
37 | # trap decode to catch security attacks | ||
38 | decode: pham | ||
39 | |||
40 | # custom | ||
41 | devnull: /dev/null | ||
42 | |||
43 | # ALIASES(5) ALIASES(5) | ||
44 | # | ||
45 | # NAME | ||
46 | # aliases - Postfix local alias database format | ||
47 | # | ||
48 | # SYNOPSIS | ||
49 | # newaliases | ||
50 | # | ||
51 | # DESCRIPTION | ||
52 | # The aliases(5) table provides a system-wide mechanism to | ||
53 | # redirect mail for local recipients. The redirections are | ||
54 | # processed by the Postfix local(8) delivery agent. | ||
55 | # | ||
56 | # Normally, the aliases(5) table is specified as a text file | ||
57 | # that serves as input to the postalias(1) command. The | ||
58 | # result, an indexed file in dbm or db format, is used for | ||
59 | # fast lookup by the mail system. Execute the command | ||
60 | # newaliases in order to rebuild the indexed file after | ||
61 | # changing the Postfix alias database. | ||
62 | # | ||
63 | # When the table is provided via other means such as NIS, | ||
64 | # LDAP or SQL, the same lookups are done as for ordinary | ||
65 | # indexed files. | ||
66 | # | ||
67 | # Alternatively, the table can be provided as a regu- | ||
68 | # lar-expression map where patterns are given as regular | ||
69 | # expressions. In this case, the lookups are done in a | ||
70 | # slightly different way as described below under "REGULAR | ||
71 | # EXPRESSION TABLES". | ||
72 | # | ||
73 | # Users can control delivery of their own mail by setting up | ||
74 | # .forward files in their home directory. Lines in per-user | ||
75 | # .forward files have the same syntax as the right-hand side | ||
76 | # of aliases(5) entries. | ||
77 | # | ||
78 | # The format of the alias database input file is as follows: | ||
79 | # | ||
80 | # o An alias definition has the form | ||
81 | # | ||
82 | # name: value1, value2, ... | ||
83 | # | ||
84 | # o Empty lines and whitespace-only lines are ignored, | ||
85 | # as are lines whose first non-whitespace character | ||
86 | # is a `#'. | ||
87 | # | ||
88 | # o A logical line starts with non-whitespace text. A | ||
89 | # line that starts with whitespace continues a logi- | ||
90 | # cal line. | ||
91 | # | ||
92 | # The name is a local address (no domain part). Use double | ||
93 | # quotes when the name contains any special characters such | ||
94 | # as whitespace, `#', `:', or `@'. The name is folded to | ||
95 | # lowercase, in order to make database lookups case insensi- | ||
96 | # tive. | ||
97 | # | ||
98 | # In addition, when an alias exists for owner-name, this | ||
99 | # will override the envelope sender address, so that deliv- | ||
100 | # ery diagnostics are directed to owner-name, instead of the | ||
101 | # originator of the message (for details, see | ||
102 | # owner_request_special, expand_owner_alias and | ||
103 | # reset_owner_alias). This is typically used to direct | ||
104 | # delivery errors to the maintainer of a mailing list, who | ||
105 | # is in a better position to deal with mailing list delivery | ||
106 | # problems than the originator of the undelivered mail. | ||
107 | # | ||
108 | # The value contains one or more of the following: | ||
109 | # | ||
110 | # address | ||
111 | # Mail is forwarded to address, which is compatible | ||
112 | # with the RFC 822 standard. | ||
113 | # | ||
114 | # /file/name | ||
115 | # Mail is appended to /file/name. See local(8) for | ||
116 | # details of delivery to file. Delivery is not lim- | ||
117 | # ited to regular files. For example, to dispose of | ||
118 | # unwanted mail, deflect it to /dev/null. | ||
119 | # | ||
120 | # |command | ||
121 | # Mail is piped into command. Commands that contain | ||
122 | # special characters, such as whitespace, should be | ||
123 | # enclosed between double quotes. See local(8) for | ||
124 | # details of delivery to command. | ||
125 | # | ||
126 | # When the command fails, a limited amount of command | ||
127 | # output is mailed back to the sender. The file | ||
128 | # /usr/include/sysexits.h defines the expected exit | ||
129 | # status codes. For example, use "|exit 67" to simu- | ||
130 | # late a "user unknown" error, and "|exit 0" to | ||
131 | # implement an expensive black hole. | ||
132 | # | ||
133 | # :include:/file/name | ||
134 | # Mail is sent to the destinations listed in the | ||
135 | # named file. Lines in :include: files have the same | ||
136 | # syntax as the right-hand side of alias entries. | ||
137 | # | ||
138 | # A destination can be any destination that is | ||
139 | # described in this manual page. However, delivery to | ||
140 | # "|command" and /file/name is disallowed by default. | ||
141 | # To enable, edit the allow_mail_to_commands and | ||
142 | # allow_mail_to_files configuration parameters. | ||
143 | # | ||
144 | # ADDRESS EXTENSION | ||
145 | # When alias database search fails, and the recipient local- | ||
146 | # part contains the optional recipient delimiter (e.g., | ||
147 | # user+foo), the search is repeated for the unextended | ||
148 | # address (e.g., user). | ||
149 | # | ||
150 | # The propagate_unmatched_extensions parameter controls | ||
151 | # whether an unmatched address extension (+foo) is propa- | ||
152 | # gated to the result of table lookup. | ||
153 | # | ||
154 | # CASE FOLDING | ||
155 | # The local(8) delivery agent always folds the search string | ||
156 | # to lowercase before database lookup. | ||
157 | # | ||
158 | # REGULAR EXPRESSION TABLES | ||
159 | # This section describes how the table lookups change when | ||
160 | # the table is given in the form of regular expressions. For | ||
161 | # a description of regular expression lookup table syntax, | ||
162 | # see regexp_table(5) or pcre_table(5). NOTE: these formats | ||
163 | # do not use ":" at the end of a pattern. | ||
164 | # | ||
165 | # Each regular expression is applied to the entire search | ||
166 | # string. Thus, a search string user+foo is not broken up | ||
167 | # into user and foo. | ||
168 | # | ||
169 | # Regular expressions are applied in the order as specified | ||
170 | # in the table, until a regular expression is found that | ||
171 | # matches the search string. | ||
172 | # | ||
173 | # Lookup results are the same as with indexed file lookups. | ||
174 | # For security reasons there is no support for $1, $2 etc. | ||
175 | # substring interpolation. | ||
176 | # | ||
177 | # SECURITY | ||
178 | # The local(8) delivery agent disallows regular expression | ||
179 | # substitution of $1 etc. in alias_maps, because that would | ||
180 | # open a security hole. | ||
181 | # | ||
182 | # The local(8) delivery agent will silently ignore requests | ||
183 | # to use the proxymap(8) server within alias_maps. Instead | ||
184 | # it will open the table directly. Before Postfix version | ||
185 | # 2.2, the local(8) delivery agent will terminate with a | ||
186 | # fatal error. | ||
187 | # | ||
188 | # CONFIGURATION PARAMETERS | ||
189 | # The following main.cf parameters are especially relevant. | ||
190 | # The text below provides only a parameter summary. See | ||
191 | # postconf(5) for more details including examples. | ||
192 | # | ||
193 | # alias_database (see 'postconf -d' output) | ||
194 | # The alias databases for local(8) delivery that are | ||
195 | # updated with "newaliases" or with "sendmail -bi". | ||
196 | # | ||
197 | # alias_maps (see 'postconf -d' output) | ||
198 | # The alias databases that are used for local(8) | ||
199 | # delivery. | ||
200 | # | ||
201 | # allow_mail_to_commands (alias, forward) | ||
202 | # Restrict local(8) mail delivery to external com- | ||
203 | # mands. | ||
204 | # | ||
205 | # allow_mail_to_files (alias, forward) | ||
206 | # Restrict local(8) mail delivery to external files. | ||
207 | # | ||
208 | # expand_owner_alias (no) | ||
209 | # When delivering to an alias "aliasname" that has an | ||
210 | # "owner-aliasname" companion alias, set the envelope | ||
211 | # sender address to the expansion of the | ||
212 | # "owner-aliasname" alias. | ||
213 | # | ||
214 | # propagate_unmatched_extensions (canonical, virtual) | ||
215 | # What address lookup tables copy an address exten- | ||
216 | # sion from the lookup key to the lookup result. | ||
217 | # | ||
218 | # owner_request_special (yes) | ||
219 | # Enable special treatment for owner-listname entries | ||
220 | # in the aliases(5) file, and don't split owner-list- | ||
221 | # name and listname-request address localparts when | ||
222 | # the recipient_delimiter is set to "-". | ||
223 | # | ||
224 | # recipient_delimiter (empty) | ||
225 | # The set of characters that can separate a user name | ||
226 | # from its extension (example: user+foo), or a .for- | ||
227 | # ward file name from its extension (example: .for- | ||
228 | # ward+foo). | ||
229 | # | ||
230 | # Available in Postfix version 2.3 and later: | ||
231 | # | ||
232 | # frozen_delivered_to (yes) | ||
233 | # Update the local(8) delivery agent's idea of the | ||
234 | # Delivered-To: address (see prepend_deliv- | ||
235 | # ered_header) only once, at the start of a delivery | ||
236 | # attempt; do not update the Delivered-To: address | ||
237 | # while expanding aliases or .forward files. | ||
238 | # | ||
239 | # STANDARDS | ||
240 | # RFC 822 (ARPA Internet Text Messages) | ||
241 | # | ||
242 | # SEE ALSO | ||
243 | # local(8), local delivery agent | ||
244 | # newaliases(1), create/update alias database | ||
245 | # postalias(1), create/update alias database | ||
246 | # postconf(5), configuration parameters | ||
247 | # | ||
248 | # README FILES | ||
249 | # Use "postconf readme_directory" or "postconf html_direc- | ||
250 | # tory" to locate this information. | ||
251 | # DATABASE_README, Postfix lookup table overview | ||
252 | # | ||
253 | # LICENSE | ||
254 | # The Secure Mailer license must be distributed with this | ||
255 | # software. | ||
256 | # | ||
257 | # AUTHOR(S) | ||
258 | # Wietse Venema | ||
259 | # IBM T.J. Watson Research | ||
260 | # P.O. Box 704 | ||
261 | # Yorktown Heights, NY 10598, USA | ||
262 | # | ||
263 | # Wietse Venema | ||
264 | # Google, Inc. | ||
265 | # 111 8th Avenue | ||
266 | # New York, NY 10011, USA | ||
267 | # | ||
268 | # ALIASES(5) | ||
diff --git a/postfix/main.cf b/postfix/main.cf new file mode 100644 index 0000000..5ef0f1d --- /dev/null +++ b/postfix/main.cf | |||
@@ -0,0 +1,701 @@ | |||
1 | # Global Postfix configuration file. This file lists only a subset | ||
2 | # of all parameters. For the syntax, and for a complete parameter | ||
3 | # list, see the postconf(5) manual page (command: "man 5 postconf"). | ||
4 | # | ||
5 | # For common configuration examples, see BASIC_CONFIGURATION_README | ||
6 | # and STANDARD_CONFIGURATION_README. To find these documents, use | ||
7 | # the command "postconf html_directory readme_directory", or go to | ||
8 | # http://www.postfix.org/BASIC_CONFIGURATION_README.html etc. | ||
9 | # | ||
10 | # For best results, change no more than 2-3 parameters at a time, | ||
11 | # and test if Postfix still works after every change. | ||
12 | |||
13 | # COMPATIBILITY | ||
14 | # | ||
15 | # The compatibility_level determines what default settings Postfix | ||
16 | # will use for main.cf and master.cf settings. These defaults will | ||
17 | # change over time. | ||
18 | # | ||
19 | # To avoid breaking things, Postfix will use backwards-compatible | ||
20 | # default settings and log where it uses those old backwards-compatible | ||
21 | # default settings, until the system administrator has determined | ||
22 | # if any backwards-compatible default settings need to be made | ||
23 | # permanent in main.cf or master.cf. | ||
24 | # | ||
25 | # When this review is complete, update the compatibility_level setting | ||
26 | # below as recommended in the RELEASE_NOTES file. | ||
27 | # | ||
28 | # The level below is what should be used with new (not upgrade) installs. | ||
29 | # | ||
30 | compatibility_level = 2 | ||
31 | |||
32 | # SOFT BOUNCE | ||
33 | # | ||
34 | # The soft_bounce parameter provides a limited safety net for | ||
35 | # testing. When soft_bounce is enabled, mail will remain queued that | ||
36 | # would otherwise bounce. This parameter disables locally-generated | ||
37 | # bounces, and prevents the SMTP server from rejecting mail permanently | ||
38 | # (by changing 5xx replies into 4xx replies). However, soft_bounce | ||
39 | # is no cure for address rewriting mistakes or mail routing mistakes. | ||
40 | # | ||
41 | soft_bounce = yes | ||
42 | |||
43 | # LOCAL PATHNAME INFORMATION | ||
44 | # | ||
45 | # The queue_directory specifies the location of the Postfix queue. | ||
46 | # This is also the root directory of Postfix daemons that run chrooted. | ||
47 | # See the files in examples/chroot-setup for setting up Postfix chroot | ||
48 | # environments on different UNIX systems. | ||
49 | # | ||
50 | queue_directory = /var/spool/postfix | ||
51 | |||
52 | # The command_directory parameter specifies the location of all | ||
53 | # postXXX commands. | ||
54 | # | ||
55 | command_directory = /usr/bin | ||
56 | |||
57 | # The daemon_directory parameter specifies the location of all Postfix | ||
58 | # daemon programs (i.e. programs listed in the master.cf file). This | ||
59 | # directory must be owned by root. | ||
60 | # | ||
61 | daemon_directory = /usr/lib/postfix/bin | ||
62 | |||
63 | # The data_directory parameter specifies the location of Postfix-writable | ||
64 | # data files (caches, random numbers). This directory must be owned | ||
65 | # by the mail_owner account (see below). | ||
66 | # | ||
67 | data_directory = /var/lib/postfix | ||
68 | |||
69 | # QUEUE AND PROCESS OWNERSHIP | ||
70 | # | ||
71 | # The mail_owner parameter specifies the owner of the Postfix queue | ||
72 | # and of most Postfix daemon processes. Specify the name of a user | ||
73 | # account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS | ||
74 | # AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In | ||
75 | # particular, don't specify nobody or daemon. PLEASE USE A DEDICATED | ||
76 | # USER. | ||
77 | # | ||
78 | mail_owner = postfix | ||
79 | |||
80 | # The default_privs parameter specifies the default rights used by | ||
81 | # the local delivery agent for delivery to external file or command. | ||
82 | # These rights are used in the absence of a recipient user context. | ||
83 | # DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER. | ||
84 | # | ||
85 | #default_privs = nobody | ||
86 | |||
87 | # INTERNET HOST AND DOMAIN NAMES | ||
88 | # | ||
89 | # The myhostname parameter specifies the internet hostname of this | ||
90 | # mail system. The default is to use the fully-qualified domain name | ||
91 | # from gethostname(). $myhostname is used as a default value for many | ||
92 | # other configuration parameters. | ||
93 | # | ||
94 | myhostname = topo.tw | ||
95 | #myhostname = virtual.domain.tld | ||
96 | |||
97 | # The mydomain parameter specifies the local internet domain name. | ||
98 | # The default is to use $myhostname minus the first component. | ||
99 | # $mydomain is used as a default value for many other configuration | ||
100 | # parameters. | ||
101 | # | ||
102 | #mydomain = domain.tld | ||
103 | |||
104 | # SENDING MAIL | ||
105 | # | ||
106 | # The myorigin parameter specifies the domain that locally-posted | ||
107 | # mail appears to come from. The default is to append $myhostname, | ||
108 | # which is fine for small sites. If you run a domain with multiple | ||
109 | # machines, you should (1) change this to $mydomain and (2) set up | ||
110 | # a domain-wide alias database that aliases each user to | ||
111 | # user@that.users.mailhost. | ||
112 | # | ||
113 | # For the sake of consistency between sender and recipient addresses, | ||
114 | # myorigin also specifies the default domain name that is appended | ||
115 | # to recipient addresses that have no @domain part. | ||
116 | # | ||
117 | #myorigin = $myhostname | ||
118 | #myorigin = $mydomain | ||
119 | |||
120 | # RECEIVING MAIL | ||
121 | |||
122 | # The inet_interfaces parameter specifies the network interface | ||
123 | # addresses that this mail system receives mail on. By default, | ||
124 | # the software claims all active interfaces on the machine. The | ||
125 | # parameter also controls delivery of mail to user@[ip.address]. | ||
126 | # | ||
127 | # See also the proxy_interfaces parameter, for network addresses that | ||
128 | # are forwarded to us via a proxy or network address translator. | ||
129 | # | ||
130 | # Note: you need to stop/start Postfix when this parameter changes. | ||
131 | # | ||
132 | inet_interfaces = all | ||
133 | #inet_interfaces = $myhostname | ||
134 | #inet_interfaces = $myhostname, localhost | ||
135 | |||
136 | # The proxy_interfaces parameter specifies the network interface | ||
137 | # addresses that this mail system receives mail on by way of a | ||
138 | # proxy or network address translation unit. This setting extends | ||
139 | # the address list specified with the inet_interfaces parameter. | ||
140 | # | ||
141 | # You must specify your proxy/NAT addresses when your system is a | ||
142 | # backup MX host for other domains, otherwise mail delivery loops | ||
143 | # will happen when the primary MX host is down. | ||
144 | # | ||
145 | #proxy_interfaces = | ||
146 | #proxy_interfaces = 1.2.3.4 | ||
147 | |||
148 | # The mydestination parameter specifies the list of domains that this | ||
149 | # machine considers itself the final destination for. | ||
150 | # | ||
151 | # These domains are routed to the delivery agent specified with the | ||
152 | # local_transport parameter setting. By default, that is the UNIX | ||
153 | # compatible delivery agent that lookups all recipients in /etc/passwd | ||
154 | # and /etc/aliases or their equivalent. | ||
155 | # | ||
156 | # The default is $myhostname + localhost.$mydomain + localhost. On | ||
157 | # a mail domain gateway, you should also include $mydomain. | ||
158 | # | ||
159 | # Do not specify the names of virtual domains - those domains are | ||
160 | # specified elsewhere (see VIRTUAL_README). | ||
161 | # | ||
162 | # Do not specify the names of domains that this machine is backup MX | ||
163 | # host for. Specify those names via the relay_domains settings for | ||
164 | # the SMTP server, or use permit_mx_backup if you are lazy (see | ||
165 | # STANDARD_CONFIGURATION_README). | ||
166 | # | ||
167 | # The local machine is always the final destination for mail addressed | ||
168 | # to user@[the.net.work.address] of an interface that the mail system | ||
169 | # receives mail on (see the inet_interfaces parameter). | ||
170 | # | ||
171 | # Specify a list of host or domain names, /file/name or type:table | ||
172 | # patterns, separated by commas and/or whitespace. A /file/name | ||
173 | # pattern is replaced by its contents; a type:table is matched when | ||
174 | # a name matches a lookup key (the right-hand side is ignored). | ||
175 | # Continue long lines by starting the next line with whitespace. | ||
176 | # | ||
177 | # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS". | ||
178 | # | ||
179 | mydestination = $myhostname, localhost.$mydomain, localhost | ||
180 | #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain | ||
181 | #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, | ||
182 | # mail.$mydomain, www.$mydomain, ftp.$mydomain | ||
183 | |||
184 | # REJECTING MAIL FOR UNKNOWN LOCAL USERS | ||
185 | # | ||
186 | # The local_recipient_maps parameter specifies optional lookup tables | ||
187 | # with all names or addresses of users that are local with respect | ||
188 | # to $mydestination, $inet_interfaces or $proxy_interfaces. | ||
189 | # | ||
190 | # If this parameter is defined, then the SMTP server will reject | ||
191 | # mail for unknown local users. This parameter is defined by default. | ||
192 | # | ||
193 | # To turn off local recipient checking in the SMTP server, specify | ||
194 | # local_recipient_maps = (i.e. empty). | ||
195 | # | ||
196 | # The default setting assumes that you use the default Postfix local | ||
197 | # delivery agent for local delivery. You need to update the | ||
198 | # local_recipient_maps setting if: | ||
199 | # | ||
200 | # - You define $mydestination domain recipients in files other than | ||
201 | # /etc/passwd, /etc/aliases, or the $virtual_alias_maps files. | ||
202 | # For example, you define $mydestination domain recipients in | ||
203 | # the $virtual_mailbox_maps files. | ||
204 | # | ||
205 | # - You redefine the local delivery agent in master.cf. | ||
206 | # | ||
207 | # - You redefine the "local_transport" setting in main.cf. | ||
208 | # | ||
209 | # - You use the "luser_relay", "mailbox_transport", or "fallback_transport" | ||
210 | # feature of the Postfix local delivery agent (see local(8)). | ||
211 | # | ||
212 | # Details are described in the LOCAL_RECIPIENT_README file. | ||
213 | # | ||
214 | # Beware: if the Postfix SMTP server runs chrooted, you probably have | ||
215 | # to access the passwd file via the proxymap service, in order to | ||
216 | # overcome chroot restrictions. The alternative, having a copy of | ||
217 | # the system passwd file in the chroot jail is just not practical. | ||
218 | # | ||
219 | # The right-hand side of the lookup tables is conveniently ignored. | ||
220 | # In the left-hand side, specify a bare username, an @domain.tld | ||
221 | # wild-card, or specify a user@domain.tld address. | ||
222 | # | ||
223 | #local_recipient_maps = unix:passwd.byname $alias_maps | ||
224 | #local_recipient_maps = proxy:unix:passwd.byname $alias_maps | ||
225 | #local_recipient_maps = | ||
226 | virtual_alias_maps = hash:/etc/postfix/virtual | ||
227 | |||
228 | # The unknown_local_recipient_reject_code specifies the SMTP server | ||
229 | # response code when a recipient domain matches $mydestination or | ||
230 | # ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty | ||
231 | # and the recipient address or address local-part is not found. | ||
232 | # | ||
233 | # The default setting is 550 (reject mail) but it is safer to start | ||
234 | # with 450 (try again later) until you are certain that your | ||
235 | # local_recipient_maps settings are OK. | ||
236 | # | ||
237 | unknown_local_recipient_reject_code = 550 | ||
238 | |||
239 | # TRUST AND RELAY CONTROL | ||
240 | |||
241 | # The mynetworks parameter specifies the list of "trusted" SMTP | ||
242 | # clients that have more privileges than "strangers". | ||
243 | # | ||
244 | # In particular, "trusted" SMTP clients are allowed to relay mail | ||
245 | # through Postfix. See the smtpd_recipient_restrictions parameter | ||
246 | # in postconf(5). | ||
247 | # | ||
248 | # You can specify the list of "trusted" network addresses by hand | ||
249 | # or you can let Postfix do it for you (which is the default). | ||
250 | # | ||
251 | # By default (mynetworks_style = subnet), Postfix "trusts" SMTP | ||
252 | # clients in the same IP subnetworks as the local machine. | ||
253 | # On Linux, this works correctly only with interfaces specified | ||
254 | # with the "ifconfig" command. | ||
255 | # | ||
256 | # Specify "mynetworks_style = class" when Postfix should "trust" SMTP | ||
257 | # clients in the same IP class A/B/C networks as the local machine. | ||
258 | # Don't do this with a dialup site - it would cause Postfix to "trust" | ||
259 | # your entire provider's network. Instead, specify an explicit | ||
260 | # mynetworks list by hand, as described below. | ||
261 | # | ||
262 | # Specify "mynetworks_style = host" when Postfix should "trust" | ||
263 | # only the local machine. | ||
264 | # | ||
265 | #mynetworks_style = class | ||
266 | #mynetworks_style = subnet | ||
267 | mynetworks_style = host | ||
268 | |||
269 | # Alternatively, you can specify the mynetworks list by hand, in | ||
270 | # which case Postfix ignores the mynetworks_style setting. | ||
271 | # | ||
272 | # Specify an explicit list of network/netmask patterns, where the | ||
273 | # mask specifies the number of bits in the network part of a host | ||
274 | # address. | ||
275 | # | ||
276 | # You can also specify the absolute pathname of a pattern file instead | ||
277 | # of listing the patterns here. Specify type:table for table-based lookups | ||
278 | # (the value on the table right-hand side is not used). | ||
279 | # | ||
280 | #mynetworks = 168.100.189.0/28, 127.0.0.0/8 | ||
281 | #mynetworks = $config_directory/mynetworks | ||
282 | #mynetworks = hash:/etc/postfix/network_table | ||
283 | |||
284 | # The relay_domains parameter restricts what destinations this system will | ||
285 | # relay mail to. See the smtpd_recipient_restrictions description in | ||
286 | # postconf(5) for detailed information. | ||
287 | # | ||
288 | # By default, Postfix relays mail | ||
289 | # - from "trusted" clients (IP address matches $mynetworks) to any destination, | ||
290 | # - from "untrusted" clients to destinations that match $relay_domains or | ||
291 | # subdomains thereof, except addresses with sender-specified routing. | ||
292 | # The default relay_domains value is $mydestination. | ||
293 | # | ||
294 | # In addition to the above, the Postfix SMTP server by default accepts mail | ||
295 | # that Postfix is final destination for: | ||
296 | # - destinations that match $inet_interfaces or $proxy_interfaces, | ||
297 | # - destinations that match $mydestination | ||
298 | # - destinations that match $virtual_alias_domains, | ||
299 | # - destinations that match $virtual_mailbox_domains. | ||
300 | # These destinations do not need to be listed in $relay_domains. | ||
301 | # | ||
302 | # Specify a list of hosts or domains, /file/name patterns or type:name | ||
303 | # lookup tables, separated by commas and/or whitespace. Continue | ||
304 | # long lines by starting the next line with whitespace. A file name | ||
305 | # is replaced by its contents; a type:name table is matched when a | ||
306 | # (parent) domain appears as lookup key. | ||
307 | # | ||
308 | # NOTE: Postfix will not automatically forward mail for domains that | ||
309 | # list this system as their primary or backup MX host. See the | ||
310 | # permit_mx_backup restriction description in postconf(5). | ||
311 | # | ||
312 | #relay_domains = $mydestination | ||
313 | |||
314 | # INTERNET OR INTRANET | ||
315 | |||
316 | # The relayhost parameter specifies the default host to send mail to | ||
317 | # when no entry is matched in the optional transport(5) table. When | ||
318 | # no relayhost is given, mail is routed directly to the destination. | ||
319 | # | ||
320 | # On an intranet, specify the organizational domain name. If your | ||
321 | # internal DNS uses no MX records, specify the name of the intranet | ||
322 | # gateway host instead. | ||
323 | # | ||
324 | # In the case of SMTP, specify a domain, host, host:port, [host]:port, | ||
325 | # [address] or [address]:port; the form [host] turns off MX lookups. | ||
326 | # | ||
327 | # If you're connected via UUCP, see also the default_transport parameter. | ||
328 | # | ||
329 | #relayhost = $mydomain | ||
330 | #relayhost = [gateway.my.domain] | ||
331 | #relayhost = [mailserver.isp.tld] | ||
332 | #relayhost = uucphost | ||
333 | #relayhost = [an.ip.add.ress] | ||
334 | |||
335 | # REJECTING UNKNOWN RELAY USERS | ||
336 | # | ||
337 | # The relay_recipient_maps parameter specifies optional lookup tables | ||
338 | # with all addresses in the domains that match $relay_domains. | ||
339 | # | ||
340 | # If this parameter is defined, then the SMTP server will reject | ||
341 | # mail for unknown relay users. This feature is off by default. | ||
342 | # | ||
343 | # The right-hand side of the lookup tables is conveniently ignored. | ||
344 | # In the left-hand side, specify an @domain.tld wild-card, or specify | ||
345 | # a user@domain.tld address. | ||
346 | # | ||
347 | #relay_recipient_maps = hash:/etc/postfix/relay_recipients | ||
348 | |||
349 | # INPUT RATE CONTROL | ||
350 | # | ||
351 | # The in_flow_delay configuration parameter implements mail input | ||
352 | # flow control. This feature is turned on by default, although it | ||
353 | # still needs further development (it's disabled on SCO UNIX due | ||
354 | # to an SCO bug). | ||
355 | # | ||
356 | # A Postfix process will pause for $in_flow_delay seconds before | ||
357 | # accepting a new message, when the message arrival rate exceeds the | ||
358 | # message delivery rate. With the default 100 SMTP server process | ||
359 | # limit, this limits the mail inflow to 100 messages a second more | ||
360 | # than the number of messages delivered per second. | ||
361 | # | ||
362 | # Specify 0 to disable the feature. Valid delays are 0..10. | ||
363 | # | ||
364 | #in_flow_delay = 1s | ||
365 | |||
366 | # ADDRESS REWRITING | ||
367 | # | ||
368 | # The ADDRESS_REWRITING_README document gives information about | ||
369 | # address masquerading or other forms of address rewriting including | ||
370 | # username->Firstname.Lastname mapping. | ||
371 | |||
372 | # ADDRESS REDIRECTION (VIRTUAL DOMAIN) | ||
373 | # | ||
374 | # The VIRTUAL_README document gives information about the many forms | ||
375 | # of domain hosting that Postfix supports. | ||
376 | |||
377 | # "USER HAS MOVED" BOUNCE MESSAGES | ||
378 | # | ||
379 | # See the discussion in the ADDRESS_REWRITING_README document. | ||
380 | |||
381 | # TRANSPORT MAP | ||
382 | # | ||
383 | # See the discussion in the ADDRESS_REWRITING_README document. | ||
384 | |||
385 | # ALIAS DATABASE | ||
386 | # | ||
387 | # The alias_maps parameter specifies the list of alias databases used | ||
388 | # by the local delivery agent. The default list is system dependent. | ||
389 | # | ||
390 | # On systems with NIS, the default is to search the local alias | ||
391 | # database, then the NIS alias database. See aliases(5) for syntax | ||
392 | # details. | ||
393 | # | ||
394 | # If you change the alias database, run "postalias /etc/aliases" (or | ||
395 | # wherever your system stores the mail alias file), or simply run | ||
396 | # "newaliases" to build the necessary DBM or DB file. | ||
397 | # | ||
398 | # It will take a minute or so before changes become visible. Use | ||
399 | # "postfix reload" to eliminate the delay. | ||
400 | # | ||
401 | #alias_maps = dbm:/etc/aliases | ||
402 | #alias_maps = hash:/etc/aliases | ||
403 | #alias_maps = hash:/etc/aliases, nis:mail.aliases | ||
404 | #alias_maps = netinfo:/aliases | ||
405 | alias_maps = hash:/etc/postfix/aliases | ||
406 | |||
407 | # The alias_database parameter specifies the alias database(s) that | ||
408 | # are built with "newaliases" or "sendmail -bi". This is a separate | ||
409 | # configuration parameter, because alias_maps (see above) may specify | ||
410 | # tables that are not necessarily all under control by Postfix. | ||
411 | # | ||
412 | #alias_database = dbm:/etc/aliases | ||
413 | #alias_database = dbm:/etc/mail/aliases | ||
414 | #alias_database = hash:/etc/aliases | ||
415 | #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases | ||
416 | alias_database = $alias_maps | ||
417 | |||
418 | # ADDRESS EXTENSIONS (e.g., user+foo) | ||
419 | # | ||
420 | # The recipient_delimiter parameter specifies the separator between | ||
421 | # user names and address extensions (user+foo). See canonical(5), | ||
422 | # local(8), relocated(5) and virtual(5) for the effects this has on | ||
423 | # aliases, canonical, virtual, relocated and .forward file lookups. | ||
424 | # Basically, the software tries user+foo and .forward+foo before | ||
425 | # trying user and .forward. | ||
426 | # | ||
427 | #recipient_delimiter = + | ||
428 | |||
429 | # DELIVERY TO MAILBOX | ||
430 | # | ||
431 | # The home_mailbox parameter specifies the optional pathname of a | ||
432 | # mailbox file relative to a user's home directory. The default | ||
433 | # mailbox file is /var/spool/mail/user or /var/mail/user. Specify | ||
434 | # "Maildir/" for qmail-style delivery (the / is required). | ||
435 | # | ||
436 | #home_mailbox = Mailbox | ||
437 | home_mailbox = Maildir/ | ||
438 | |||
439 | # The mail_spool_directory parameter specifies the directory where | ||
440 | # UNIX-style mailboxes are kept. The default setting depends on the | ||
441 | # system type. | ||
442 | # | ||
443 | #mail_spool_directory = /var/mail | ||
444 | #mail_spool_directory = /var/spool/mail | ||
445 | |||
446 | # The mailbox_command parameter specifies the optional external | ||
447 | # command to use instead of mailbox delivery. The command is run as | ||
448 | # the recipient with proper HOME, SHELL and LOGNAME environment settings. | ||
449 | # Exception: delivery for root is done as $default_user. | ||
450 | # | ||
451 | # Other environment variables of interest: USER (recipient username), | ||
452 | # EXTENSION (address extension), DOMAIN (domain part of address), | ||
453 | # and LOCAL (the address localpart). | ||
454 | # | ||
455 | # Unlike other Postfix configuration parameters, the mailbox_command | ||
456 | # parameter is not subjected to $parameter substitutions. This is to | ||
457 | # make it easier to specify shell syntax (see example below). | ||
458 | # | ||
459 | # Avoid shell meta characters because they will force Postfix to run | ||
460 | # an expensive shell process. Procmail alone is expensive enough. | ||
461 | # | ||
462 | # IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN | ||
463 | # ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER. | ||
464 | # | ||
465 | mailbox_command = /usr/lib/dovecot/dovecot-lda | ||
466 | #mailbox_command = /some/where/procmail -a "$EXTENSION" | ||
467 | |||
468 | # The mailbox_transport specifies the optional transport in master.cf | ||
469 | # to use after processing aliases and .forward files. This parameter | ||
470 | # has precedence over the mailbox_command, fallback_transport and | ||
471 | # luser_relay parameters. | ||
472 | # | ||
473 | # Specify a string of the form transport:nexthop, where transport is | ||
474 | # the name of a mail delivery transport defined in master.cf. The | ||
475 | # :nexthop part is optional. For more details see the sample transport | ||
476 | # configuration file. | ||
477 | # | ||
478 | # NOTE: if you use this feature for accounts not in the UNIX password | ||
479 | # file, then you must update the "local_recipient_maps" setting in | ||
480 | # the main.cf file, otherwise the SMTP server will reject mail for | ||
481 | # non-UNIX accounts with "User unknown in local recipient table". | ||
482 | # | ||
483 | # Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd" | ||
484 | # listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf. | ||
485 | #mailbox_transport = lmtp:unix:/var/imap/socket/lmtp | ||
486 | # | ||
487 | # Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and | ||
488 | # subsequent line in master.cf. | ||
489 | #mailbox_transport = cyrus | ||
490 | |||
491 | # The fallback_transport specifies the optional transport in master.cf | ||
492 | # to use for recipients that are not found in the UNIX passwd database. | ||
493 | # This parameter has precedence over the luser_relay parameter. | ||
494 | # | ||
495 | # Specify a string of the form transport:nexthop, where transport is | ||
496 | # the name of a mail delivery transport defined in master.cf. The | ||
497 | # :nexthop part is optional. For more details see the sample transport | ||
498 | # configuration file. | ||
499 | # | ||
500 | # NOTE: if you use this feature for accounts not in the UNIX password | ||
501 | # file, then you must update the "local_recipient_maps" setting in | ||
502 | # the main.cf file, otherwise the SMTP server will reject mail for | ||
503 | # non-UNIX accounts with "User unknown in local recipient table". | ||
504 | # | ||
505 | #fallback_transport = lmtp:unix:/file/name | ||
506 | #fallback_transport = cyrus | ||
507 | #fallback_transport = | ||
508 | |||
509 | # The luser_relay parameter specifies an optional destination address | ||
510 | # for unknown recipients. By default, mail for unknown@$mydestination, | ||
511 | # unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned | ||
512 | # as undeliverable. | ||
513 | # | ||
514 | # The following expansions are done on luser_relay: $user (recipient | ||
515 | # username), $shell (recipient shell), $home (recipient home directory), | ||
516 | # $recipient (full recipient address), $extension (recipient address | ||
517 | # extension), $domain (recipient domain), $local (entire recipient | ||
518 | # localpart), $recipient_delimiter. Specify ${name?value} or | ||
519 | # ${name:value} to expand value only when $name does (does not) exist. | ||
520 | # | ||
521 | # luser_relay works only for the default Postfix local delivery agent. | ||
522 | # | ||
523 | # NOTE: if you use this feature for accounts not in the UNIX password | ||
524 | # file, then you must specify "local_recipient_maps =" (i.e. empty) in | ||
525 | # the main.cf file, otherwise the SMTP server will reject mail for | ||
526 | # non-UNIX accounts with "User unknown in local recipient table". | ||
527 | # | ||
528 | #luser_relay = $user@other.host | ||
529 | #luser_relay = $local@other.host | ||
530 | #luser_relay = admin+$local | ||
531 | |||
532 | # JUNK MAIL CONTROLS | ||
533 | # | ||
534 | # The controls listed here are only a very small subset. The file | ||
535 | # SMTPD_ACCESS_README provides an overview. | ||
536 | |||
537 | # The header_checks parameter specifies an optional table with patterns | ||
538 | # that each logical message header is matched against, including | ||
539 | # headers that span multiple physical lines. | ||
540 | # | ||
541 | # By default, these patterns also apply to MIME headers and to the | ||
542 | # headers of attached messages. With older Postfix versions, MIME and | ||
543 | # attached message headers were treated as body text. | ||
544 | # | ||
545 | # For details, see "man header_checks". | ||
546 | # | ||
547 | #header_checks = regexp:/etc/postfix/header_checks | ||
548 | |||
549 | # FAST ETRN SERVICE | ||
550 | # | ||
551 | # Postfix maintains per-destination logfiles with information about | ||
552 | # deferred mail, so that mail can be flushed quickly with the SMTP | ||
553 | # "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld". | ||
554 | # See the ETRN_README document for a detailed description. | ||
555 | # | ||
556 | # The fast_flush_domains parameter controls what destinations are | ||
557 | # eligible for this service. By default, they are all domains that | ||
558 | # this server is willing to relay mail to. | ||
559 | # | ||
560 | #fast_flush_domains = $relay_domains | ||
561 | |||
562 | # SHOW SOFTWARE VERSION OR NOT | ||
563 | # | ||
564 | # The smtpd_banner parameter specifies the text that follows the 220 | ||
565 | # code in the SMTP server's greeting banner. Some people like to see | ||
566 | # the mail version advertised. By default, Postfix shows no version. | ||
567 | # | ||
568 | # You MUST specify $myhostname at the start of the text. That is an | ||
569 | # RFC requirement. Postfix itself does not care. | ||
570 | # | ||
571 | #smtpd_banner = $myhostname ESMTP $mail_name | ||
572 | smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) | ||
573 | |||
574 | # PARALLEL DELIVERY TO THE SAME DESTINATION | ||
575 | # | ||
576 | # How many parallel deliveries to the same user or domain? With local | ||
577 | # delivery, it does not make sense to do massively parallel delivery | ||
578 | # to the same user, because mailbox updates must happen sequentially, | ||
579 | # and expensive pipelines in .forward files can cause disasters when | ||
580 | # too many are run at the same time. With SMTP deliveries, 10 | ||
581 | # simultaneous connections to the same domain could be sufficient to | ||
582 | # raise eyebrows. | ||
583 | # | ||
584 | # Each message delivery transport has its XXX_destination_concurrency_limit | ||
585 | # parameter. The default is $default_destination_concurrency_limit for | ||
586 | # most delivery transports. For the local delivery agent the default is 2. | ||
587 | |||
588 | #local_destination_concurrency_limit = 2 | ||
589 | #default_destination_concurrency_limit = 20 | ||
590 | |||
591 | # DEBUGGING CONTROL | ||
592 | # | ||
593 | # The debug_peer_level parameter specifies the increment in verbose | ||
594 | # logging level when an SMTP client or server host name or address | ||
595 | # matches a pattern in the debug_peer_list parameter. | ||
596 | # | ||
597 | debug_peer_level = 2 | ||
598 | |||
599 | # The debug_peer_list parameter specifies an optional list of domain | ||
600 | # or network patterns, /file/name patterns or type:name tables. When | ||
601 | # an SMTP client or server host name or address matches a pattern, | ||
602 | # increase the verbose logging level by the amount specified in the | ||
603 | # debug_peer_level parameter. | ||
604 | # | ||
605 | #debug_peer_list = 127.0.0.1 | ||
606 | #debug_peer_list = some.domain | ||
607 | |||
608 | # The debugger_command specifies the external command that is executed | ||
609 | # when a Postfix daemon program is run with the -D option. | ||
610 | # | ||
611 | # Use "command .. & sleep 5" so that the debugger can attach before | ||
612 | # the process marches on. If you use an X-based debugger, be sure to | ||
613 | # set up your XAUTHORITY environment variable before starting Postfix. | ||
614 | # | ||
615 | debugger_command = | ||
616 | PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin | ||
617 | ddd $daemon_directory/$process_name $process_id & sleep 5 | ||
618 | |||
619 | # If you can't use X, use this to capture the call stack when a | ||
620 | # daemon crashes. The result is in a file in the configuration | ||
621 | # directory, and is named after the process name and the process ID. | ||
622 | # | ||
623 | # debugger_command = | ||
624 | # PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont; | ||
625 | # echo where) | gdb $daemon_directory/$process_name $process_id 2>&1 | ||
626 | # >$config_directory/$process_name.$process_id.log & sleep 5 | ||
627 | # | ||
628 | # Another possibility is to run gdb under a detached screen session. | ||
629 | # To attach to the screen session, su root and run "screen -r | ||
630 | # <id_string>" where <id_string> uniquely matches one of the detached | ||
631 | # sessions (from "screen -list"). | ||
632 | # | ||
633 | # debugger_command = | ||
634 | # PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen | ||
635 | # -dmS $process_name gdb $daemon_directory/$process_name | ||
636 | # $process_id & sleep 1 | ||
637 | |||
638 | # INSTALL-TIME CONFIGURATION INFORMATION | ||
639 | # | ||
640 | # The following parameters are used when installing a new Postfix version. | ||
641 | # | ||
642 | # sendmail_path: The full pathname of the Postfix sendmail command. | ||
643 | # This is the Sendmail-compatible mail posting interface. | ||
644 | # | ||
645 | sendmail_path = /usr/bin/sendmail | ||
646 | |||
647 | # newaliases_path: The full pathname of the Postfix newaliases command. | ||
648 | # This is the Sendmail-compatible command to build alias databases. | ||
649 | # | ||
650 | newaliases_path = /usr/bin/newaliases | ||
651 | |||
652 | # mailq_path: The full pathname of the Postfix mailq command. This | ||
653 | # is the Sendmail-compatible mail queue listing command. | ||
654 | # | ||
655 | mailq_path = /usr/bin/mailq | ||
656 | |||
657 | # setgid_group: The group for mail submission and queue management | ||
658 | # commands. This must be a group name with a numerical group ID that | ||
659 | # is not shared with other accounts, not even with the Postfix account. | ||
660 | # | ||
661 | setgid_group = postdrop | ||
662 | |||
663 | # html_directory: The location of the Postfix HTML documentation. | ||
664 | # | ||
665 | html_directory = no | ||
666 | |||
667 | # manpage_directory: The location of the Postfix on-line manual pages. | ||
668 | # | ||
669 | manpage_directory = /usr/share/man | ||
670 | |||
671 | # sample_directory: The location of the Postfix sample configuration files. | ||
672 | # This parameter is obsolete as of Postfix 2.1. | ||
673 | # | ||
674 | sample_directory = /etc/postfix | ||
675 | |||
676 | # readme_directory: The location of the Postfix README files. | ||
677 | # | ||
678 | readme_directory = /usr/share/doc/postfix | ||
679 | inet_protocols = ipv4 | ||
680 | meta_directory = /etc/postfix | ||
681 | shlib_directory = /usr/lib/postfix | ||
682 | |||
683 | smtpd_sasl_type = dovecot | ||
684 | smtpd_sasl_path = private/auth | ||
685 | smtpd_sasl_auth_enable = yes | ||
686 | smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination | ||
687 | |||
688 | smtp_tls_security_level = may | ||
689 | smtpd_tls_security_level = may | ||
690 | smtpd_use_tls = yes | ||
691 | smtpd_tls_auth_only = yes | ||
692 | smtpd_tls_cert_file = /etc/letsencrypt/live/mail.topo.tw/fullchain.pem | ||
693 | smtpd_tls_key_file = /etc/letsencrypt/live/mail.topo.tw/privkey.pem | ||
694 | smtpd_tls_loglevel = 1 | ||
695 | maillog_file=/var/log/postfix.log | ||
696 | message_size_limit = 40960000 | ||
697 | mailbox_size_limit = 10000000000 | ||
698 | |||
699 | smtpd_milters = inet:localhost:8891 | ||
700 | non_smtpd_milters = $smtpd_milters | ||
701 | milter_default_action = accept | ||
diff --git a/postfix/master.cf b/postfix/master.cf new file mode 100644 index 0000000..883a466 --- /dev/null +++ b/postfix/master.cf | |||
@@ -0,0 +1,141 @@ | |||
1 | # | ||
2 | # Postfix master process configuration file. For details on the format | ||
3 | # of the file, see the master(5) manual page (command: "man 5 master" or | ||
4 | # on-line: http://www.postfix.org/master.5.html). | ||
5 | # | ||
6 | # Do not forget to execute "postfix reload" after editing this file. | ||
7 | # | ||
8 | # ========================================================================== | ||
9 | # service type private unpriv chroot wakeup maxproc command + args | ||
10 | # (yes) (yes) (no) (never) (100) | ||
11 | # ========================================================================== | ||
12 | smtp inet n - n - - smtpd | ||
13 | #smtp inet n - n - - smtpd -o content_filter=myhook:dummy | ||
14 | #smtp inet n - n - 1 postscreen | ||
15 | #smtpd pass - - n - - smtpd | ||
16 | #dnsblog unix - - n - 0 dnsblog | ||
17 | #tlsproxy unix - - n - 0 tlsproxy | ||
18 | # Choose one: enable submission for loopback clients only, or for any client. | ||
19 | #127.0.0.1:submission inet n - n - - smtpd | ||
20 | submission inet n - n - - smtpd | ||
21 | -o syslog_name=postfix/submission | ||
22 | -o smtpd_tls_security_level=encrypt | ||
23 | -o smtpd_sasl_auth_enable=yes | ||
24 | # -o smtpd_tls_auth_only=yes | ||
25 | # -o smtpd_reject_unlisted_recipient=no | ||
26 | # -o smtpd_client_restrictions=$mua_client_restrictions | ||
27 | # -o smtpd_helo_restrictions=$mua_helo_restrictions | ||
28 | # -o smtpd_sender_restrictions=$mua_sender_restrictions | ||
29 | # -o smtpd_recipient_restrictions= | ||
30 | # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject | ||
31 | # -o milter_macro_daemon_name=ORIGINATING | ||
32 | # Choose one: enable smtps for loopback clients only, or for any client. | ||
33 | #127.0.0.1:smtps inet n - n - - smtpd | ||
34 | #smtps inet n - n - - smtpd | ||
35 | # -o syslog_name=postfix/smtps | ||
36 | # -o smtpd_tls_wrappermode=yes | ||
37 | # -o smtpd_sasl_auth_enable=yes | ||
38 | # -o smtpd_reject_unlisted_recipient=no | ||
39 | # -o smtpd_client_restrictions=$mua_client_restrictions | ||
40 | # -o smtpd_helo_restrictions=$mua_helo_restrictions | ||
41 | # -o smtpd_sender_restrictions=$mua_sender_restrictions | ||
42 | # -o smtpd_recipient_restrictions= | ||
43 | # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject | ||
44 | # -o milter_macro_daemon_name=ORIGINATING | ||
45 | #628 inet n - n - - qmqpd | ||
46 | pickup unix n - n 60 1 pickup | ||
47 | cleanup unix n - n - 0 cleanup | ||
48 | qmgr unix n - n 300 1 qmgr | ||
49 | #qmgr unix n - n 300 1 oqmgr | ||
50 | tlsmgr unix - - n 1000? 1 tlsmgr | ||
51 | rewrite unix - - n - - trivial-rewrite | ||
52 | bounce unix - - n - 0 bounce | ||
53 | defer unix - - n - 0 bounce | ||
54 | trace unix - - n - 0 bounce | ||
55 | verify unix - - n - 1 verify | ||
56 | flush unix n - n 1000? 0 flush | ||
57 | proxymap unix - - n - - proxymap | ||
58 | proxywrite unix - - n - 1 proxymap | ||
59 | smtp unix - - n - - smtp | ||
60 | relay unix - - n - - smtp | ||
61 | -o syslog_name=postfix/$service_name | ||
62 | # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 | ||
63 | showq unix n - n - - showq | ||
64 | error unix - - n - - error | ||
65 | retry unix - - n - - error | ||
66 | discard unix - - n - - discard | ||
67 | local unix - n n - - local | ||
68 | virtual unix - n n - - virtual | ||
69 | lmtp unix - - n - - lmtp | ||
70 | anvil unix - - n - 1 anvil | ||
71 | scache unix - - n - 1 scache | ||
72 | postlog unix-dgram n - n - 1 postlogd | ||
73 | # | ||
74 | # ==================================================================== | ||
75 | # Interfaces to non-Postfix software. Be sure to examine the manual | ||
76 | # pages of the non-Postfix software to find out what options it wants. | ||
77 | # | ||
78 | # Many of the following services use the Postfix pipe(8) delivery | ||
79 | # agent. See the pipe(8) man page for information about ${recipient} | ||
80 | # and other message envelope options. | ||
81 | # ==================================================================== | ||
82 | # | ||
83 | # maildrop. See the Postfix MAILDROP_README file for details. | ||
84 | # Also specify in main.cf: maildrop_destination_recipient_limit=1 | ||
85 | # | ||
86 | #maildrop unix - n n - - pipe | ||
87 | # flags=DRXhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} | ||
88 | # | ||
89 | # ==================================================================== | ||
90 | # | ||
91 | # Recent Cyrus versions can use the existing "lmtp" master.cf entry. | ||
92 | # | ||
93 | # Specify in cyrus.conf: | ||
94 | # lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4 | ||
95 | # | ||
96 | # Specify in main.cf one or more of the following: | ||
97 | # mailbox_transport = lmtp:inet:localhost | ||
98 | # virtual_transport = lmtp:inet:localhost | ||
99 | # | ||
100 | # ==================================================================== | ||
101 | # | ||
102 | # Cyrus 2.1.5 (Amos Gouaux) | ||
103 | # Also specify in main.cf: cyrus_destination_recipient_limit=1 | ||
104 | # | ||
105 | #cyrus unix - n n - - pipe | ||
106 | # flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} | ||
107 | # | ||
108 | # ==================================================================== | ||
109 | # | ||
110 | # Old example of delivery via Cyrus. | ||
111 | # | ||
112 | #old-cyrus unix - n n - - pipe | ||
113 | # flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user} | ||
114 | # | ||
115 | # ==================================================================== | ||
116 | # | ||
117 | # See the Postfix UUCP_README file for configuration details. | ||
118 | # | ||
119 | #uucp unix - n n - - pipe | ||
120 | # flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) | ||
121 | # | ||
122 | # ==================================================================== | ||
123 | # | ||
124 | # Other external delivery methods. | ||
125 | # | ||
126 | #ifmail unix - n n - - pipe | ||
127 | # flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) | ||
128 | # | ||
129 | #bsmtp unix - n n - - pipe | ||
130 | # flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient | ||
131 | # | ||
132 | #scalemail-backend unix - n n - 2 pipe | ||
133 | # flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store | ||
134 | # ${nexthop} ${user} ${extension} | ||
135 | # | ||
136 | #mailman unix - n n - - pipe | ||
137 | # flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py | ||
138 | # ${nexthop} ${user} | ||
139 | # | ||
140 | |||
141 | myhook unix - n n - - pipe flags=F user=pham argv=/home/pham/scripts/postfix-test ${sender} ${size} ${recipient} | ||
diff --git a/postfix/opendkim/opendkim.conf b/postfix/opendkim/opendkim.conf new file mode 100644 index 0000000..5c8c65e --- /dev/null +++ b/postfix/opendkim/opendkim.conf | |||
@@ -0,0 +1,6 @@ | |||
1 | Mode s | ||
2 | Domain topo.tw | ||
3 | KeyFile /etc/opendkim/dkim.key | ||
4 | Selector dkim | ||
5 | Socket inet:8891@localhost | ||
6 | UserID opendkim | ||
diff --git a/postfix/virtual b/postfix/virtual new file mode 100644 index 0000000..ca8fb33 --- /dev/null +++ b/postfix/virtual | |||
@@ -0,0 +1,328 @@ | |||
1 | @topo.tw pham | ||
2 | #no-reply@topo.tw devnull | ||
3 | #dmarc@topo.tw devnull | ||
4 | |||
5 | # VIRTUAL(5) VIRTUAL(5) | ||
6 | # | ||
7 | # NAME | ||
8 | # virtual - Postfix virtual alias table format | ||
9 | # | ||
10 | # SYNOPSIS | ||
11 | # postmap /etc/postfix/virtual | ||
12 | # | ||
13 | # postmap -q "string" /etc/postfix/virtual | ||
14 | # | ||
15 | # postmap -q - /etc/postfix/virtual <inputfile | ||
16 | # | ||
17 | # DESCRIPTION | ||
18 | # The optional virtual(5) alias table rewrites recipient | ||
19 | # addresses for all local, all virtual, and all remote mail | ||
20 | # destinations. This is unlike the aliases(5) table which | ||
21 | # is used only for local(8) delivery. Virtual aliasing is | ||
22 | # recursive, and is implemented by the Postfix cleanup(8) | ||
23 | # daemon before mail is queued. | ||
24 | # | ||
25 | # The main applications of virtual aliasing are: | ||
26 | # | ||
27 | # o To redirect mail for one address to one or more | ||
28 | # addresses. | ||
29 | # | ||
30 | # o To implement virtual alias domains where all | ||
31 | # addresses are aliased to addresses in other | ||
32 | # domains. | ||
33 | # | ||
34 | # Virtual alias domains are not to be confused with | ||
35 | # the virtual mailbox domains that are implemented | ||
36 | # with the Postfix virtual(8) mail delivery agent. | ||
37 | # With virtual mailbox domains, each recipient | ||
38 | # address can have its own mailbox. | ||
39 | # | ||
40 | # Virtual aliasing is applied only to recipient envelope | ||
41 | # addresses, and does not affect message headers. Use | ||
42 | # canonical(5) mapping to rewrite header and envelope | ||
43 | # addresses in general. | ||
44 | # | ||
45 | # Normally, the virtual(5) alias table is specified as a | ||
46 | # text file that serves as input to the postmap(1) command. | ||
47 | # The result, an indexed file in dbm or db format, is used | ||
48 | # for fast searching by the mail system. Execute the command | ||
49 | # "postmap /etc/postfix/virtual" to rebuild an indexed file | ||
50 | # after changing the corresponding text file. | ||
51 | # | ||
52 | # When the table is provided via other means such as NIS, | ||
53 | # LDAP or SQL, the same lookups are done as for ordinary | ||
54 | # indexed files. | ||
55 | # | ||
56 | # Alternatively, the table can be provided as a regu- | ||
57 | # lar-expression map where patterns are given as regular | ||
58 | # expressions, or lookups can be directed to TCP-based | ||
59 | # server. In those case, the lookups are done in a slightly | ||
60 | # different way as described below under "REGULAR EXPRESSION | ||
61 | # TABLES" or "TCP-BASED TABLES". | ||
62 | # | ||
63 | # CASE FOLDING | ||
64 | # The search string is folded to lowercase before database | ||
65 | # lookup. As of Postfix 2.3, the search string is not case | ||
66 | # folded with database types such as regexp: or pcre: whose | ||
67 | # lookup fields can match both upper and lower case. | ||
68 | # | ||
69 | # TABLE FORMAT | ||
70 | # The input format for the postmap(1) command is as follows: | ||
71 | # | ||
72 | # pattern address, address, ... | ||
73 | # When pattern matches a mail address, replace it by | ||
74 | # the corresponding address. | ||
75 | # | ||
76 | # blank lines and comments | ||
77 | # Empty lines and whitespace-only lines are ignored, | ||
78 | # as are lines whose first non-whitespace character | ||
79 | # is a `#'. | ||
80 | # | ||
81 | # multi-line text | ||
82 | # A logical line starts with non-whitespace text. A | ||
83 | # line that starts with whitespace continues a logi- | ||
84 | # cal line. | ||
85 | # | ||
86 | # TABLE SEARCH ORDER | ||
87 | # With lookups from indexed files such as DB or DBM, or from | ||
88 | # networked tables such as NIS, LDAP or SQL, each | ||
89 | # user@domain query produces a sequence of query patterns as | ||
90 | # described below. | ||
91 | # | ||
92 | # Each query pattern is sent to each specified lookup table | ||
93 | # before trying the next query pattern, until a match is | ||
94 | # found. | ||
95 | # | ||
96 | # user@domain address, address, ... | ||
97 | # Redirect mail for user@domain to address. This | ||
98 | # form has the highest precedence. | ||
99 | # | ||
100 | # user address, address, ... | ||
101 | # Redirect mail for user@site to address when site is | ||
102 | # equal to $myorigin, when site is listed in $mydes- | ||
103 | # tination, or when it is listed in $inet_interfaces | ||
104 | # or $proxy_interfaces. | ||
105 | # | ||
106 | # This functionality overlaps with functionality of | ||
107 | # the local aliases(5) database. The difference is | ||
108 | # that virtual(5) mapping can be applied to non-local | ||
109 | # addresses. | ||
110 | # | ||
111 | # @domain address, address, ... | ||
112 | # Redirect mail for other users in domain to address. | ||
113 | # This form has the lowest precedence. | ||
114 | # | ||
115 | # Note: @domain is a wild-card. With this form, the | ||
116 | # Postfix SMTP server accepts mail for any recipient | ||
117 | # in domain, regardless of whether that recipient | ||
118 | # exists. This may turn your mail system into a | ||
119 | # backscatter source: Postfix first accepts mail for | ||
120 | # non-existent recipients and then tries to return | ||
121 | # that mail as "undeliverable" to the often forged | ||
122 | # sender address. | ||
123 | # | ||
124 | # To avoid backscatter with mail for a wild-card | ||
125 | # domain, replace the wild-card mapping with explicit | ||
126 | # 1:1 mappings, or add a reject_unverified_recipient | ||
127 | # restriction for that domain: | ||
128 | # | ||
129 | # smtpd_recipient_restrictions = | ||
130 | # ... | ||
131 | # reject_unauth_destination | ||
132 | # check_recipient_access | ||
133 | # inline:{example.com=reject_unverified_recipient} | ||
134 | # unverified_recipient_reject_code = 550 | ||
135 | # | ||
136 | # In the above example, Postfix may contact a remote | ||
137 | # server if the recipient is aliased to a remote | ||
138 | # address. | ||
139 | # | ||
140 | # RESULT ADDRESS REWRITING | ||
141 | # The lookup result is subject to address rewriting: | ||
142 | # | ||
143 | # o When the result has the form @otherdomain, the | ||
144 | # result becomes the same user in otherdomain. This | ||
145 | # works only for the first address in a multi-address | ||
146 | # lookup result. | ||
147 | # | ||
148 | # o When "append_at_myorigin=yes", append "@$myorigin" | ||
149 | # to addresses without "@domain". | ||
150 | # | ||
151 | # o When "append_dot_mydomain=yes", append ".$mydomain" | ||
152 | # to addresses without ".domain". | ||
153 | # | ||
154 | # ADDRESS EXTENSION | ||
155 | # When a mail address localpart contains the optional recip- | ||
156 | # ient delimiter (e.g., user+foo@domain), the lookup order | ||
157 | # becomes: user+foo@domain, user@domain, user+foo, user, and | ||
158 | # @domain. | ||
159 | # | ||
160 | # The propagate_unmatched_extensions parameter controls | ||
161 | # whether an unmatched address extension (+foo) is propa- | ||
162 | # gated to the result of table lookup. | ||
163 | # | ||
164 | # VIRTUAL ALIAS DOMAINS | ||
165 | # Besides virtual aliases, the virtual alias table can also | ||
166 | # be used to implement virtual alias domains. With a virtual | ||
167 | # alias domain, all recipient addresses are aliased to | ||
168 | # addresses in other domains. | ||
169 | # | ||
170 | # Virtual alias domains are not to be confused with the vir- | ||
171 | # tual mailbox domains that are implemented with the Postfix | ||
172 | # virtual(8) mail delivery agent. With virtual mailbox | ||
173 | # domains, each recipient address can have its own mailbox. | ||
174 | # | ||
175 | # With a virtual alias domain, the virtual domain has its | ||
176 | # own user name space. Local (i.e. non-virtual) usernames | ||
177 | # are not visible in a virtual alias domain. In particular, | ||
178 | # local aliases(5) and local mailing lists are not visible | ||
179 | # as localname@virtual-alias.domain. | ||
180 | # | ||
181 | # Support for a virtual alias domain looks like: | ||
182 | # | ||
183 | # /etc/postfix/main.cf: | ||
184 | # virtual_alias_maps = hash:/etc/postfix/virtual | ||
185 | # | ||
186 | # Note: some systems use dbm databases instead of hash. See | ||
187 | # the output from "postconf -m" for available database | ||
188 | # types. | ||
189 | # | ||
190 | # /etc/postfix/virtual: | ||
191 | # virtual-alias.domain anything (right-hand content does not matter) | ||
192 | # postmaster@virtual-alias.domain postmaster | ||
193 | # user1@virtual-alias.domain address1 | ||
194 | # user2@virtual-alias.domain address2, address3 | ||
195 | # | ||
196 | # The virtual-alias.domain anything entry is required for a | ||
197 | # virtual alias domain. Without this entry, mail is rejected | ||
198 | # with "relay access denied", or bounces with "mail loops | ||
199 | # back to myself". | ||
200 | # | ||
201 | # Do not specify virtual alias domain names in the main.cf | ||
202 | # mydestination or relay_domains configuration parameters. | ||
203 | # | ||
204 | # With a virtual alias domain, the Postfix SMTP server | ||
205 | # accepts mail for known-user@virtual-alias.domain, and | ||
206 | # rejects mail for unknown-user@virtual-alias.domain as | ||
207 | # undeliverable. | ||
208 | # | ||
209 | # Instead of specifying the virtual alias domain name via | ||
210 | # the virtual_alias_maps table, you may also specify it via | ||
211 | # the main.cf virtual_alias_domains configuration parameter. | ||
212 | # This latter parameter uses the same syntax as the main.cf | ||
213 | # mydestination configuration parameter. | ||
214 | # | ||
215 | # REGULAR EXPRESSION TABLES | ||
216 | # This section describes how the table lookups change when | ||
217 | # the table is given in the form of regular expressions. For | ||
218 | # a description of regular expression lookup table syntax, | ||
219 | # see regexp_table(5) or pcre_table(5). | ||
220 | # | ||
221 | # Each pattern is a regular expression that is applied to | ||
222 | # the entire address being looked up. Thus, user@domain mail | ||
223 | # addresses are not broken up into their user and @domain | ||
224 | # constituent parts, nor is user+foo broken up into user and | ||
225 | # foo. | ||
226 | # | ||
227 | # Patterns are applied in the order as specified in the ta- | ||
228 | # ble, until a pattern is found that matches the search | ||
229 | # string. | ||
230 | # | ||
231 | # Results are the same as with indexed file lookups, with | ||
232 | # the additional feature that parenthesized substrings from | ||
233 | # the pattern can be interpolated as $1, $2 and so on. | ||
234 | # | ||
235 | # TCP-BASED TABLES | ||
236 | # This section describes how the table lookups change when | ||
237 | # lookups are directed to a TCP-based server. For a descrip- | ||
238 | # tion of the TCP client/server lookup protocol, see tcp_ta- | ||
239 | # ble(5). This feature is not available up to and including | ||
240 | # Postfix version 2.4. | ||
241 | # | ||
242 | # Each lookup operation uses the entire address once. Thus, | ||
243 | # user@domain mail addresses are not broken up into their | ||
244 | # user and @domain constituent parts, nor is user+foo broken | ||
245 | # up into user and foo. | ||
246 | # | ||
247 | # Results are the same as with indexed file lookups. | ||
248 | # | ||
249 | # BUGS | ||
250 | # The table format does not understand quoting conventions. | ||
251 | # | ||
252 | # CONFIGURATION PARAMETERS | ||
253 | # The following main.cf parameters are especially relevant | ||
254 | # to this topic. See the Postfix main.cf file for syntax | ||
255 | # details and for default values. Use the "postfix reload" | ||
256 | # command after a configuration change. | ||
257 | # | ||
258 | # virtual_alias_maps ($virtual_maps) | ||
259 | # Optional lookup tables that alias specific mail | ||
260 | # addresses or domains to other local or remote | ||
261 | # address. | ||
262 | # | ||
263 | # virtual_alias_domains ($virtual_alias_maps) | ||
264 | # Postfix is final destination for the specified list | ||
265 | # of virtual alias domains, that is, domains for | ||
266 | # which all addresses are aliased to addresses in | ||
267 | # other local or remote domains. | ||
268 | # | ||
269 | # propagate_unmatched_extensions (canonical, virtual) | ||
270 | # What address lookup tables copy an address exten- | ||
271 | # sion from the lookup key to the lookup result. | ||
272 | # | ||
273 | # Other parameters of interest: | ||
274 | # | ||
275 | # inet_interfaces (all) | ||
276 | # The network interface addresses that this mail sys- | ||
277 | # tem receives mail on. | ||
278 | # | ||
279 | # mydestination ($myhostname, localhost.$mydomain, local- | ||
280 | # host) | ||
281 | # The list of domains that are delivered via the | ||
282 | # $local_transport mail delivery transport. | ||
283 | # | ||
284 | # myorigin ($myhostname) | ||
285 | # The domain name that locally-posted mail appears to | ||
286 | # come from, and that locally posted mail is deliv- | ||
287 | # ered to. | ||
288 | # | ||
289 | # owner_request_special (yes) | ||
290 | # Enable special treatment for owner-listname entries | ||
291 | # in the aliases(5) file, and don't split owner-list- | ||
292 | # name and listname-request address localparts when | ||
293 | # the recipient_delimiter is set to "-". | ||
294 | # | ||
295 | # proxy_interfaces (empty) | ||
296 | # The network interface addresses that this mail sys- | ||
297 | # tem receives mail on by way of a proxy or network | ||
298 | # address translation unit. | ||
299 | # | ||
300 | # SEE ALSO | ||
301 | # cleanup(8), canonicalize and enqueue mail | ||
302 | # postmap(1), Postfix lookup table manager | ||
303 | # postconf(5), configuration parameters | ||
304 | # canonical(5), canonical address mapping | ||
305 | # | ||
306 | # README FILES | ||
307 | # Use "postconf readme_directory" or "postconf html_direc- | ||
308 | # tory" to locate this information. | ||
309 | # ADDRESS_REWRITING_README, address rewriting guide | ||
310 | # DATABASE_README, Postfix lookup table overview | ||
311 | # VIRTUAL_README, domain hosting guide | ||
312 | # | ||
313 | # LICENSE | ||
314 | # The Secure Mailer license must be distributed with this | ||
315 | # software. | ||
316 | # | ||
317 | # AUTHOR(S) | ||
318 | # Wietse Venema | ||
319 | # IBM T.J. Watson Research | ||
320 | # P.O. Box 704 | ||
321 | # Yorktown Heights, NY 10598, USA | ||
322 | # | ||
323 | # Wietse Venema | ||
324 | # Google, Inc. | ||
325 | # 111 8th Avenue | ||
326 | # New York, NY 10011, USA | ||
327 | # | ||
328 | # VIRTUAL(5) | ||