Postfix main.cf file format

Different domains are delivered in parallel, subject to the process limits specified in master. With a corresponding per-destination recipient limit equal to 1, the rate delay specifies the time between deliveries to the same recipient. Different recipients are delivered in parallel, subject to the process limits specified in master. To enable the delay, specify a non-zero time value an integral value plus an optional one-letter suffix that specifies the time unit. The delay timer state does not survive " postfix reload " or " postfix stop ".

The default maximal number of recipients per message delivery. It changes the meaning of the corresponding per-destination concurrency limit, from concurrency of deliveries to the same domain into concurrency of deliveries to the same recipient. It changes the meaning of the corresponding per-destination rate delay, from the delay between deliveries to the same domain into the delay between deliveries to the same recipient.

Again, different recipients are delivered in parallel, subject to the process limits specified in master. It changes the meaning of other corresponding per-destination settings in a similar manner, from settings for delivery to the same domain into settings for delivery to the same recipient. The default value for the extra per-transport limit imposed on the number of in-memory recipients.

This extra recipient space is reserved for the cases when the Postfix queue manager's scheduler preempts one message with another and suddenly needs some extra recipients slots for the chosen message in order to avoid performance degradation. How many recipients a message must have in order to invoke the Postfix queue manager's scheduling algorithm at all. Messages which would never accumulate at least this many delivery slots subject to slot cost parameter as well are never preempted. The default rights used by the local 8 delivery agent for delivery to external file or command. These rights are used when delivery is requested from an aliases 5 file that is owned by root , or when delivery is done on behalf of root.

The default maximal number of Postfix child processes that provide a given service. This limit can be overruled for specific services in the master. The following transformations are needed when the same RBL reply template is used for client, helo, sender, or recipient access restrictions. The default per-transport upper limit on the number of in-memory recipients. The default per-transport maximum delay between recipients refills.

When not all message recipients fit into the memory at once, keep loading more of them at least once every this many seconds. The default per-transport limit on the number of recipients refilled at once. When not all message recipients fit into the memory at once, keep loading more of them in batches of at least this many at a time.

Specify a string of the form transport: The default amount of delay that is inserted between individual message deliveries over the same message delivery transport, regardless of destination. The two default VERP delimiter characters. The name of the defer service. This service is implemented by the bounce 8 daemon and maintains a record of failed delivery attempts and generates non-delivery notifications. The names of message delivery transports that should not deliver mail unless someone issues " sendmail -q " or equivalent.

Specify zero or more names of mail delivery transports names that appear in the first field of master. The maximal number of digits after the decimal point when logging sub-second delay values. Specify a number in the range The time after which the sender receives a copy of the message headers of mail that is still queued.

To enable this feature, specify a non-zero time value an integral value plus an optional one-letter suffix that specifies the time unit. The default time unit is h hours. The maximal number of attempts to acquire an exclusive lock on a mailbox file or bounce 8 logfile. The time between attempts to acquire an exclusive lock on a mailbox file or bounce 8 logfile. As of Postfix 2. Turn off MIME processing while receiving mail. This means that no special treatment is given to Content-Type: Mime input processing is enabled by default, and is needed in order to recognize MIME headers in message content.

Enable a workaround for future libc incompatibility. If this promise is broken, specify "yes" to enable a workaround for DNS reputation lookups.


  • Table of Contents.
  • Santa Maria delle Battaglie (Italian Edition);
  • FCS Express 6 Manual;

The name of the dnsblog 8 service entry in master. Don't remove queue files and save them to the "saved" mail queue. This is a debugging aid. To inspect the envelope information and content of a Postfix queue file, use the postcat 1 command. The sender address of postmaster notifications that are generated by the mail system. All mail to this address is silently discarded, in order to terminate mail bounce loops. The maximal number of addresses remembered by the address duplicate filter for aliases 5 or virtual 5 alias expansion, or for showq 8 queue displays.

The recipient of mail addressed to the null address. Postfix does not accept such addresses in SMTP commands, but they may still be created locally as the result of configuration or software error. Report mail delivery errors to the address specified with the non-standard Errors-To: This affects the conversion of domain names that contain for example the German sz and the Greek zeta. Enable long, non-repeating, queue IDs queue file names. The benefit of non-repeating names is simpler logfile analysis and easier queue migration there is no need to run "postsuper" to change queue file names that don't match their message file inode number.

New queue files are created with names such as 3Pt2mN2VXxznjll. These are encoded in a character alphabet that contains digits , upper-case letters B-Z and lower-case letters b-z. The name format is: The mailq postqueue -p output has a wider Queue ID column. The number of whitespace-separated fields is not changed. Existing long queue file names are renamed to the short form while running "postfix reload" or "postsuper". New queue files are created with names such as C3CD21F3E90 from a hexadecimal alphabet that contains digits and upper-case letters A-F.

Enable support for the original recipient address after an address is rewritten to a different address for example with aliasing or with canonical mapping. Postfix versions before 2. The recipient of postmaster notifications about mail delivery problems that are caused by policy, resource, software or protocol errors. The name of the error 8 pseudo delivery agent. This service always returns mail as undeliverable. When delivering to an alias " aliasname " that has an "owner- aliasname " companion alias, set the envelope sender address to the expansion of the "owner- aliasname " alias. Normally, Postfix sets the envelope sender address to the name of the "owner- aliasname " alias.

The list of environment variables that a Postfix process will export to non-Postfix processes. The TZ variable is needed for sane time keeping on System-V-ish systems. The maximal number of recipient addresses that Postfix will extract from message headers when mail is submitted with " sendmail -t ". Optional list of relay hosts for SMTP destinations that can't be found or that are unreachable.

By default, mail is returned to the sender when a destination is not found, and delivery is deferred when a destination is unreachable. The fallback relays must be SMTP destinations. Specify a domain, host, host: Optional message delivery transport that the local 8 delivery agent should use for names that are not found in the aliases 5 or UNIX password database. The precedence of local 8 delivery features from high to low is: Optional lookup tables with per-recipient message delivery transports for recipients that the local 8 delivery agent could not find in the aliases 5 or UNIX password database.

Optional list of destinations that are eligible for per-destination logfiles with mail that is queued to those destinations. By default, Postfix maintains "fast flush" logfiles only for destinations that the Postfix SMTP server is willing to relay to i. You can specify the time as a number, or as a number followed by a letter that indicates the time unit: The default time unit is days. The time after which a non-empty but unread per-destination "fast flush" logfile needs to be refreshed. The contents of a logfile are refreshed by requesting delivery of all messages listed in the logfile.

The default time unit is hours. Force specific internal tests to fail, to test the handling of errors that are difficult to reproduce otherwise. The name of the flush 8 service. This service maintains per-destination logfiles with the queue file names of mail that is queued for those destinations.

The local 8 delivery agent search list for finding a. The first file that is found is used. Update the local 8 delivery agent's idea of the Delivered-To: With older Postfix releases, the behavior is as if this parameter is set to "no". The old setting can be expensive with deeply nested aliases or. When an alias or. Queue hashing is implemented by creating one or more levels of directories with one-character names.

Originally, these directory names were equal to the first characters of the queue file name, with the hexadecimal representation of the file creation time in microseconds. With long queue file names, queue hashing produces the same results as with short names. The file creation time in microseconds is converted into hexadecimal form before the result is used for queue hashing.

The base 16 encoding gives finer control over the number of subdirectories than is possible with the base 52 encoding of long queue file names. Claims about improvements in file system technology suggest that hashing of the incoming and active queues is no longer needed. Fewer hashed directories speed up the time needed to restart Postfix. The maximal number of address tokens are allowed in an address message header.

Information that exceeds the limit is discarded. The limit is enforced by the cleanup 8 server. The format of the Postfix-generated From: Postfix generates the format " From: This is the same behavior as prior to Postfix 3. In the standard form, the name will be quoted if it contains specials as defined in RFC , or the "! The maximal amount of memory in bytes for storing a message header.

If a header is larger, the excess is discarded. Optional pathname of a mailbox file relative to a local 8 user's home directory. The maximal number of Received: A message that exceeds the limit is bounced, in order to stop a mailer loop. The location of Postfix HTML files that describe how to build, configure or operate a specific Postfix subsystem or feature. This behavior is required by the SMTP standard. This violates the SMTP standard and can result in mis-delivery of mail.

Examples of relevant parameters:. Time to pause before accepting a new message, when the message arrival rate exceeds the message delivery rate. The network interface addresses that this mail system receives mail on. Specify "all" to receive mail on all network interfaces default , and "loopback-only" to receive mail on loopback network interfaces only Postfix version 2.

The parameter also controls delivery of mail to user [ip. Support for IPv6 is available in Postfix version 2. On a multi-homed firewall with separate Postfix instances listening on the "inside" and "outside" interfaces, this can prevent each instance from being able to reach remote SMTP servers on the "other side" of the firewall. This preserves the Postfix SMTP client's loop detection, by ensuring that each side of the firewall knows that the other IP address is still the same host.

The Internet protocols Postfix will attempt to use when making or accepting connections. Specify one or more of "ipv4" or "ipv6", separated by whitespace or commas. The form "all" is equivalent to "ipv4, ipv6" or "ipv4", depending on whether the operating system implements IPv6. For backwards compatibility with these releases, the Postfix 2. This compatibility workaround will be phased out as IPv6 deployment becomes more common. The initial per-destination concurrency level for parallel delivery to the same destination.

Specify zero or more of the following, separated by whitespace or comma. It's generally not safe to enable content inspection of Postfix-generated email messages. The user is warned. The time after which a client closes an idle internal communication channel. The purpose is to allow Postfix daemon processes to terminate voluntarily after they become idle. This is used, for example, by the Postfix address resolving and rewriting clients. The time limit for sending or receiving information over an internal communication channel.

The purpose is to break out of deadlock situations. If the time limit is exceeded the software aborts with a fatal error. The time after which a client closes an active internal communication channel. The purpose is to allow Postfix daemon processes to terminate voluntarily after reaching their client limit. Upon input, long lines are chopped up into pieces of at most this length; upon delivery, long lines are reconstructed. Each time a database becomes full, its size limit is doubled. See there for details.

When a remote LMTP server announces no DSN support, assume that the server performs final delivery, and send "delivered" delivery status notifications instead of "relayed". The default setting is backwards compatible to avoid the infinitesimal possibility of breaking existing LMTP-based content filters. When the LMTP client receives a request for the same connection the connection is reused. This parameter is available in Postfix version 2. The effectiveness of cached connections will be determined by the number of remote LMTP servers in use, and the concurrency limit specified for the Postfix LMTP client.

Cached connections are closed under any of the following conditions:. Most of these limitations have been with the Postfix a connection cache that is shared among multiple LMTP client programs. When no connection can be made within the deadline, the LMTP client tries the next address on the mail exchanger list.

When no response is received within the deadline, a warning is logged that the mail may be delivered multiple times. The maximal number of parallel deliveries to the same destination via the lmtp message delivery transport. This limit is enforced by the queue manager. The message delivery transport name is the first field in the entry in the master. The maximal number of recipients per message for the lmtp message delivery transport. A case insensitive list of LHLO keywords pipelining, starttls, auth, etc. Optional list of relay hosts for LMTP destinations that can't be found or that are unreachable.

The fallback relays must be TCP destinations, specified without a leading "inet: Specify a host or host: This information can be specified in the main. If a remote host or domain has no username: Typically this specifies the name of a configuration file or rendezvous point. SASL security options; as of Postfix 2. The available types are listed with the " postconf -A " command.

This allows an lmtp 8 delivery agent, used for content filter message injection, to forward the name, address, protocol and HELO name of the original client to the content filter and downstream queuing LMTP server. Before you change the value to yes, it is best to make sure that your content filter supports this command. Specify a symbolic name see services 5 or a numeric port. Optional shell program for local 8 delivery to non-Postfix command.

Optional filter for the local 8 delivery agent to change the status code or explanatory text of successful or unsuccessful deliveries. A low limit of 2 is recommended, just in case someone has an expensive shell command in a. You don't want to run lots of those at the same time. The maximal number of recipients per message delivery via the local mail delivery transport. The purist and default setting: Lookup tables with all names or addresses of local recipients: Specify domain as a wild-card for domains that do not have a valid recipient list.

Postfix needs to know only if a lookup string is found or not, but it does not use the result from table lookup. If this parameter is non-empty the default , then the Postfix SMTP server will reject mail for unknown local users. The default setting assumes that you use the default Postfix local delivery agent for local delivery.

The alternative, maintaining a copy of the system password file in the chroot jail is not practical. By default, local mail is delivered to the transport called "local", which is just the name of a service that is defined the master. Optional catch-all destination for unknown local 8 recipients. The mail system name that is displayed in Received: Specify the name of an unprivileged user account that does not share a user or group ID with other accounts, and that owns no other files or processes on the system.

In particular, don't specify nobody or daemon. When this parameter value is changed you need to re-run " postfix set-permissions " with Postfix version 2. The directory where local 8 UNIX-style mailboxes are kept. The default setting depends on the system type. Postfix will not create it. The version of the mail system. Stable releases are named major. Experimental releases also include the release date. The version string can be used in, for example, the SMTP greeting banner. Optional external command that the local 8 delivery agent should use for mailbox delivery. The command is run with the user ID and the primary group ID privileges of the recipient.

This is not a problem, because 1 mail for root should always be aliased to a real user and 2 don't log in as root, use "su" instead. This is to make it easier to specify shell syntax see example below. If you can, avoid shell meta characters because they will force Postfix to run an expensive shell process. If you're delivering via Procmail then running a shell won't make a noticeable difference in the total cost. Optional lookup tables with per-recipient external commands to use for local 8 mailbox delivery. How to lock a UNIX-style local 8 mailbox before attempting delivery.

For a list of available file locking methods, use the " postconf -l " command. This setting is ignored with maildir style delivery, because such deliveries are safe without explicit locks. The dotlock method requires that the recipient UID or GID has write access to the parent directory of the mailbox file. The maximal size of any local 8 individual mailbox or maildir file, or zero no limit.

In fact, this limits the size of any file that is written to upon local delivery, including files written by external commands that are executed by the local 8 delivery agent. Optional message delivery transport that the local 8 delivery agent should use for mailbox delivery to all local recipients, whether or not they are found in the UNIX passwd database. Optional lookup tables with per-recipient message delivery transports to use for local 8 mailbox delivery, whether or not the recipients are found in the UNIX passwd database. Sendmail compatibility feature that specifies where the Postfix mailq 1 command is installed.

This command can be used to list the Postfix mail queue. By default, address masquerading is limited to envelope sender addresses, and to header sender and header recipient addresses. This allows you to use address masquerading on a mail gateway while still being able to forward mail to users on individual machines.

Selectively disable master 8 listener ports by service type or by service name and type. As with other Postfix matchlists, a search stops at the first match. By default, all master 8 listener ports are enabled. The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. This parameter is ignored by the Postfix queue manager and by other long-lived Postfix daemon processes.

The maximal number of incoming connections that a Postfix daemon process will service before terminating voluntarily. Specify a list of header names, separated by comma or space. Names are matched in a case-insensitive manner. The list of supported header names is limited only by available memory. The set of characters that Postfix will reject in message content. The usual C-like escape sequences are recognized: Excessively small values will result in the loss of non-delivery notifications, when a bounce message size exceeds the local or remote MTA's message size limit.

The set of characters that Postfix will remove from message content. The location of non-executable files that are shared among multiple Postfix instances, such as postfix-files, dynamicmaps. This directory should contain only Postfix-related files. For backwards compatibility with Postfix versions 2. The time limit for sending an SMTP command to a Milter mail filter application, and for receiving the response.

Specify a non-zero time value an integral value plus an optional one-letter suffix that specifies the time unit. The time limit for connecting to a Milter mail filter application, and for negotiating protocol options. The time limit for sending message content to a Milter mail filter application, and for receiving the response. The default action when a Milter mail filter application is unavailable or mis-configured. Specify one of the following:. The macros that are sent to Milter mail filter applications after the message end-of-data. The macros that are sent to Milter mail filter applications after the end of the message header.

Optional lookup tables for content inspection of message headers that are produced by Milter applications. The following example sends all mail that is marked as SPAM to a spam handling machine. Note that matches are case-insensitive by default. For example it could be used to skip heavy content inspection for DKIM-signed mail from known friendly domains. These defaults are used when there is no corresponding information from the message delivery context.

The mail filter protocol version and optional protocol extensions for communication with a Milter application; prior to Postfix 2. Postfix sends this version number during the initial protocol handshake. It should match the version number that is expected by the mail filter application or by its Milter library. The macros that are sent to version 3 or higher Milter mail filter applications after an unknown SMTP command. The maximal length of MIME multipart boundary strings. The maximal recursion level that the MIME processor will handle. Postfix refuses mail that is nested deeper than the specified limit.

The minimal time between attempts to deliver a deferred message; prior to Postfix 2. This parameter also limits the time an unreachable destination is kept in the short-term, in-memory, destination status cache. An optional list of non-default Postfix configuration directories; these directories belong to additional Postfix instances that share the Postfix executable files and documentation with the default Postfix instance, and that are started, stopped, etc.

Specify a list of pathnames separated by comma or whitespace. Currently, this parameter setting is ignored except for the default main. Allow this Postfix instance to be started, stopped, etc. By default, new instances are created in a safe state that prevents them from being started inadvertently. This parameter is reserved for the multi-instance manager. The optional instance group name of this Postfix instance.

A group identifies closely-related Postfix instances that the multi-instance manager can start, stop, etc. The optional instance name of this Postfix instance. The pathname may be followed by initial command arguments separated by whitespace; shell metacharacters such as quotes are not supported in this context.

The postfix 1 command invokes the manager command with the postfix 1 non-option command arguments on the manager command line, and with all installation configuration parameters exported into the manager command process environment. The default mydestination value specifies names for the local machine only. Do not specify the names of virtual domains - those domains are specified elsewhere. Do not specify the names of domains that this machine is backup MX host for. The internet domain name of this mail system. The internet hostname of this mail system. You can specify the list of "trusted" network addresses by hand or you can let Postfix do it for you which is the default.

The netmask specifies the number of bits in the network part of a host address. The method to generate the default value for the mynetworks parameter. This is the list of trusted networks for relay access control etc. On Linux, this works correctly only with interfaces specified with the "ifconfig" command. Instead, specify an explicit mynetworks list by hand, as described with the mynetworks configuration parameter. The domain name that locally-posted mail appears to come from, and that locally posted mail is delivered to.

Sendmail compatibility feature that specifies the location of the newaliases 1 command. This command can be used to rebuild the local 8 aliases 5 database. A list of Milter mail filter applications for new mail that does not arrive via the Postfix smtpd 8 server.

The Polipo Manual

This includes local submission via the sendmail 1 command line, new mail that arrives via the Postfix qmqpd 8 server, and old mail that is re-injected into the queue with "postsuper -r". Specify space or comma as separator. The list of error classes that are reported to the postmaster. The default is to report only the most serious problems. The paranoid may wish to turn on the policy UCE and mail relaying and protocol error broken mail software reports.

It is the system administrator's responsibility to treat such information with care. The location of the OpenSSL command line program openssl 1. This is used by the " postfix tls " command to create private keys, certificate signing requests, self-signed certificates, and to compute public key digests for DANE TLSA records. In multi-instance environments, this parameter is always determined from the configuration of the default Postfix instance. This feature is useful for mailing lists. A list of Postfix features where the pattern "example. This is planned backwards compatibility: The parameter value syntax is the same as with the mynetworks parameter; note, however, that the default value is empty.

The name of the pickup 8 service. This service picks up local mail submissions from the Postfix maildrop queue. Optional filter for the pipe 8 delivery agent to change the delivery status code or explanatory text of successful or unsuccessful deliveries. The postfix 1 commands that the postmulti 1 instance manager treats as "control" commands, that operate on running instances.

For these commands, disabled instances are skipped. The postfix 1 commands that the postmulti 1 instance manager treats as "start" commands. For these commands, disabled instances are "checked" rather than "started", and failure to "start" a member instance of an instance group will abort the start-up of later instances. The postfix 1 commands that the postmulti 1 instance manager treats as "stop" commands. For these commands, disabled instances are skipped, and enabled instances are processed in reverse order. Specify a comma- or whitespace-separated list of commands in upper or lower case or lookup tables.

The search stops upon the first command that fires for the client IP address. The action that postscreen 8 takes when a remote SMTP client sends a bare newline character, that is, a newline not preceded by carriage return. Enable "bare newline" SMTP protocol tests in the postscreen 8 server.

These tests are expensive: The amount of time that postscreen 8 will use the result from a successful "bare newline" SMTP protocol test. During this time, the client IP address is excluded from this test. The amount of time between postscreen 8 cache cleanup runs. Cache cleanup increases the load on the cache database and should therefore not be run frequently. This feature requires that the cache database supports the "delete" and "sequence" operators. Specify a zero interval to disable cache cleanup.

After each cache cleanup run, the postscreen 8 daemon logs the number of entries that were retained and dropped. This requires Postfix version 2. The amount of time that postscreen 8 will cache an expired temporary whitelist entry before it is removed. This prevents clients from being logged as "NEW" just because their cache entry expired an hour ago. It also prevents the cache from filling up with clients that passed some deep protocol test once and never came back. How many simultaneous connections any remote SMTP client is allowed to have with the postscreen 8 daemon.

This SMTP engine defers or rejects all attempts to deliver mail, therefore there is no need to enforce separate limits on the number of junk commands and error commands. A mechanism to transform commands from remote SMTP clients. The time limit to read an entire command line with postscreen 8 's built-in SMTP protocol engine. The table is not searched by hostname for robustness reasons.

A case insensitive list of EHLO keywords pipelining, starttls, auth, etc. The maximum amount of time that postscreen 8 will use the result from a successful DNS-based reputation test before a client IP address is required to pass that test again. This feature is available in Postfix 3. The default setting is backwards-compatible with older Postfix versions. The minimum amount of time that postscreen 8 will use the result from a successful DNS-based reputation test before a client IP address is required to pass that test again.

For maximal stability it is best to use a file that is read into memory such as pcre: The filter has the form d. Specify a negative number for whitelisting. This is separate from the timeouts in the dnsblog 8 daemon which are defined by system resolver 3 routines. The amount of time that postscreen 8 will use the result from a successful DNS-based reputation test before a client IP address is required to pass that test again.

This is usually organized into a tree-like structure where a message and all of its replies are represented graphically. If you've ever used a threaded news client, this is the same concept. It makes dealing with large volume mailing lists easier because you can easily delete uninteresting threads and quickly find topics of value. Working within the confines of a console or terminal window, it is often useful to be able to modify certain information elements in a non-destructive way -- to change how they display, without changing the stored value of the information itself.

This is especially so of message subjects, which may often be polluted with extraneous metadata that either is reproduced elsewhere, or is of secondary interest. The replacement is subject to substitutions in the same way as for the spam command: Any number of subjectrx commands may coexist. Mutt assumes a folder has new mail if it wasn't accessed after it was last modified. Utilities like biff or frm or any other program which accesses the mailbox might cause Mutt to never detect new mail for that mailbox if they do not properly reset the access time. Other possible causes of Mutt not detecting new mail in these folders are backup tools updating access times or filesystems mounted without access time update support for Linux systems, see the relatime option.

Contrary to older Mutt releases, it now maintains the new mail status of a folder by properly resetting the access time if the folder contains at least one message which is neither read, nor deleted, nor marked as old. Mutt does not poll POP3 folders for new mail, it only periodically checks the currently opened folder if it's a POP3 folder. When set the default it will only notify you of new mail received since the last time you opened the mailbox. When unset, Mutt will notify you of any new mail in the mailbox.

The interval depends on the folder type: Pressing TAB will bring up a menu showing the files specified by the mailboxes command, and indicate which contain new messages. Mutt will automatically enter this mode when invoked from the command line with the -y option. When the Inotify mechanism for monitoring of files is supported Linux only and not disabled at compilation time, Mutt immediately notifies about new mail for all folders configured via the mailboxes command.

Dependent on mailbox format also added old mails are tracked not for Maildir. No configuration variables are available. Trace output is given when debugging is enabled via command line option -d3. The lower level 2 only shows errors, the higher level 5 all including raw Inotify events. Getting events about new mail is limited to the capabilities of the underlying mechanism. Inotify only reports local changes, i. Also the monitoring handles might fail in rare conditions, so you better don't completely rely on this feature. This calculation takes place at the same time as new mail polling, but is controlled by a separate timer: The sidebar can display these message counts.

Mutt has the ability to dynamically restructure threads that are broken either by misconfigured software or bad behavior from some correspondents. This allows to clean your mailboxes from these annoyances which make it hard to follow a discussion. This results in broken discussions because Mutt has not enough information to guess the correct threading. The reply will then be connected to this parent message. To support DSN, there are two variables. The -N and -R options can be used by the mail client to make requests as to what type of status messages should be returned.

This functionality is provided by the external urlview program which can be retrieved at https: You can print messages to the message window using the "echo" command. This might be useful after a macro finishes executing. Mutt normalizes all e-mail addresses to the simplest form possible. The folder Mutt opens at startup is determined as follows: If that isn't present either, Mutt takes the user's mailbox in the mailspool as determined at compile-time which may also reside in the home directory. Highest priority has the mailbox given with the -f command line option.

Every effort has been made to provide the functionality that the discerning MIME user requires, and the conformance to the standards wherever possible. One is the mime. The other is the mailcap file, which specifies the external commands to use for handling specific MIME types. Before the introduction of MIME, messages had a single text part and were limited to us-ascii header and content. With MIME, messages can have attachments and even attachments which itself have attachments and thus form a tree structure , nearly arbitrary characters can be used for sender names, recipients and subjects.

These are constructed using a major and minor type separated by a forward slash. These specify details about the content that follows. Based upon these, Mutt decides how to handle this part. Major types also exist for images, audio, video and of course general application data e. There's also the multipart major type which represents the root of a subtree of MIME parts. On reception, it can be flexibly configured as to how what MIME structure is displayed and if it's displayed: When you select a message from the index and view it in the pager, Mutt decodes as much of a message as possible to a text representation.

Where the Description is the description or filename given for the attachment, and the Encoding is one of the already mentioned content encodings. The attachment menu displays a list of the attachments in a message. From the attachment menu, you can save, print, pipe, delete, and view attachments. You can also reply to the current message from this menu, and only the current attachment or the attachments tagged will be quoted in your reply. You can view attachments as text, or view them using the mailcap viewer definition the mailcap mechanism is explained later in detail.

The compose menu is the menu you see before you send a message. It allows you to edit the recipient list, the subject, and other aspects of your message. It also contains a list of the attachments of your message, including the main body. From this menu, you can print, copy, filter, pipe, edit, compose, review, and rename an attachment or a list of tagged attachments. You can also modifying the attachment information, notably the type, encoding and description.

The next field is the encoding for the attachment, which allows a binary message to be encoded for transmission on 7bit links. The next field is the size of the attachment, rounded to kilobytes or megabytes. To get most out of MIME, it's important that a MIME part's content type matches the content as closely as possible so that the recipient's client can automatically select the right viewer for the content. However, there's no reliable for Mutt to know how to detect every possible file type. Instead, it uses a simple plain text mapping file that specifies what file extension corresponds to what MIME type.

This file is called mime. When you add an attachment to your mail message, Mutt searches your personal mime. Each line starts with the full MIME type, followed by a space and space-separated list of file extensions. For example you could use:. If that command is not specified, Mutt will look at the file.

Mutt recognizes all of these if the appropriate entry is found in the mime. Non-recognized mime types should only be used if the recipient of the message is likely to be expecting such attachments. Programs known to use this format include Firefox, lynx and metamail. In order to handle various MIME types that Mutt doesn't have built-in support for, it parses a series of external configuration files to find an external handler. The default search string for these files is a colon delimited list containing the following files:.

A definition line consists of a content type, a view command, and any number of optional fields. The view command is a Unix command for viewing the type specified. There are two different types of commands supported. The default is to send the body of the MIME message to the command on stdin. In both cases, Mutt will turn over the terminal to the view program until the program quits, at which time Mutt will remove the temporary file if it exists.

This means that mailcap does not work out of the box with programs which detach themselves from the terminal right after starting, like open on Mac OS X. In order to nevertheless use these programs with mailcap, you probably need custom shell scripts. They will find the line which calls lynx, and run it. This causes lynx to continuously spawn itself to view the object.

The interpretation of shell meta-characters embedded in MIME parameters can lead to security problems in general. Although Mutt's procedures to invoke programs with mailcap seem to be safe, there are other applications parsing mailcap, maybe taking less care of it. Therefore you should pay attention to the following rules:. Don't quote them with single or double quotes. Mutt does this for you, the right way, as should any other program which interprets mailcap. Don't put them into backtick expansions. Be highly careful with evil statements, and avoid them if possible at all.

Trying to fix broken behavior with quotes introduces new leaks — there is no alternative to correct quoting in the first place. Mutt recognizes the following optional fields:. This flag tells Mutt that the command passes possibly large amounts of text on standard output. This causes Mutt to invoke a pager either the internal pager or the external pager defined by the pager variable on the output of the view command. Without this flag, Mutt assumes that the command is interactive. One could use this to replace the pipe to more in the lynx -dump example in the Basic section:.

Some programs make use of this environment variable automatically. Others provide a command line argument that can use this to set the output width:. Note that when using the built-in pager, only entries with this flag will be considered a handler for a MIME type — all other entries will be ignored. In all other situations it will not prompt you for a key.

This flag specifies the command to use to create a new attachment of a specific MIME type. Mutt supports this from the compose menu. This command differs from the compose command in that Mutt will expect standard MIME headers on the data. This can be used to specify parameters, filename, description, etc. This flag specifies the command to use to print a specific MIME type.

Mutt supports this from the attachment and compose menus. This flag specifies the command to use to edit a specific MIME type. Mutt supports this from the compose menu, and also uses it to compose new attachments. Certain programs will require a certain file extension, for instance, to correctly view a file. This field specifies a command to run to test whether this mailcap entry should be used. The command is defined with the command expansion rules defined in the next section.

If the command returns 0, then the test passed, and Mutt uses this entry. If the command returns non-zero, then the test failed, and Mutt continues searching for the right entry. Note that the content-type must match before Mutt performs the test. In this example, Mutt will run the program RunningX which will return 0 if the X Window manager is running, and non-zero if it isn't.

When searching for an entry in the mailcap file, Mutt will search for the most useful entry for its purpose. In addition, you can then use the test feature to determine which viewer to use interactively depending on your environment. For interactive viewing, Mutt will run the program RunningX to determine if it should use the first entry. If the program returns non-zero, Mutt will use the second entry for interactive viewing.

Entries with the copiousoutput tag should always be specified as the last one per type. For non-interactive use, the last entry will then actually be the first matching one with the tag set. For non-interactive use, only copiousoutput -tagged entries are considered. For interactive use, Mutt ignores this tag and treats all entries equally. The keywords Mutt expands are:. As seen in the basic mailcap section, this variable is expanded to a filename specified by the calling program.


  • F! Love : What’s It To You??
  • Revelation:.
  • The Princess of Denmark (Nicholas Bracewell Book 16).
  • Works of Theodore Watts-Dunton?
  • The Polipo Manual.

Mutt will expand this to the value of the specified parameter from the Content-Type: For instance, if your mail message contains:. The default metamail mailcap file uses this feature to test the charset to spawn an xterm using the right charset to view the message. The main purpose of these parameters is for multipart messages, which is handled internally by Mutt. In addition to explicitly telling Mutt to view an attachment with the MIME viewer defined in the mailcap file from the attachments menu, Mutt has support for automatically viewing MIME attachments while in the pager.

For this to work, you must define a viewer in the mailcap file which uses the copiousoutput option to denote that it is non-interactive. Usually, you also use the entry to convert the attachment to a text representation which you can view in the pager. For instance, if you set it to:. Mutt would try to find corresponding entries for rendering attachments of these types as text. A corresponding mailcap could look like:. This can be used with message-hook to autoview messages based on size, etc. This is often used to send HTML messages which contain an alternative plain text representation.

It consists of a number of MIME types in order, including support for implicit and explicit wildcards. If you ever lose track of attachments in your mailboxes, Mutt's attachment-counting and -searching support might be for you. You can make your message index display the number of qualifying attachments in each message, or search for messages by attachment count. You also can configure what kinds of attachments qualify for this feature with the attachments and unattachments commands. You can abbreviate this to I or A. There are examples below of how this is useful.

1 Background

The MIME types you give to the attachments directive are a kind of pattern. When you use the attachments directive, the patterns you specify are added to a list. When you use unattachments , the pattern is removed from the list. The patterns are not expanded and matched to specific MIME types at this time — they're just text in a list. They're only matched when actually evaluating a message. Some examples might help to illustrate.

The examples that are not commented out define the default configuration of the lists. Common usage would be:. Mutt supports several of optional features which can be enabled or disabled at compile-time by giving the configure script certain arguments. Which features are enabled or disabled can later be determined from the output of mutt -v. The canonical syntax for specifying URLs in Mutt is an item enclosed in [] means it is optional and may be omitted:. A password can be given, too but is not recommended if the URL is specified in a configuration file on disk.

If Mutt is compiled with POP3 support by running the configure script with the --enable-pop flag , it has the ability to work with mailboxes located on a remote POP3 server and fetch mail for local browsing. Polling for new mail is more expensive over POP3 than locally. POP is read-only which doesn't allow for some features like editing messages or changing flags.

Mutt applies some logic on top of remote messages but cannot change them so that modifications of flags are lost when messages are downloaded from the POP server either by Mutt or other tools. After this point, Mutt runs exactly as if the mail had always been local. If you only need to fetch all messages to a local mailbox you should consider using a specialized program, such as fetchmail 1 , getmail 1 or similar. If Mutt was compiled with IMAP support by running the configure script with the --enable-imap flag , it has the ability to work with folders located on a remote IMAP server.

Alternatively, a pine-compatible notation is also supported, i. Mutt should correctly notice which separator is being used by the server and convert paths accordingly. When browsing folders on an IMAP server, you can toggle whether to look at only the folders you are subscribed to, or all folders with the toggle-subscribed command. Polling for new mail on an IMAP server can cause noticeable delays. Note that if you are using mbox as the mail store on UW servers prior to v As of version 1.

This is mostly the same as the local file browser, with the following differences:. On Cyrus-like servers folders will often contain both messages and subfolders.

The Successful Single Mom: Transform

For the case where an entry can contain both messages and subfolders, the selection key bound to enter by default will choose to descend into the subfolder view. If you wish to view the messages in that folder, you must use view-file instead bound to space by default. C , d and r , respectively. Mutt supports four authentication methods with IMAP servers: It is the best option if you have it. Mutt will try whichever methods are compiled in and available on the server, in the following order: This is overridden by an explicit username in the mailbox path i. If specified, this overrides Mutt's default attempt everything, in the order listed above.

Besides supporting traditional mail delivery through a sendmail-compatible program, Mutt supports delivery through SMTP if it was configured and built with --enable-smtp. At least for Gmail, you can use the oauth2. You'll need to get your own oauth client credentials for Gmail here: Then, you'd use oauth2.

The account-hook command may help. This hook works like folder-hook but is invoked whenever Mutt needs to access a remote mailbox including inside the folder browser , not just when you open the mailbox. This includes for example polling for new mail, storing Fcc messages and saving messages to a folder. As a consequence, account-hook should only be used to set connection-related settings such as passwords or tunnel commands but not settings such as sender address or name because in general it should be considered unpredictable which account-hook was last used.

Mutt contains two types of local caching: Mutt provides optional support for caching message headers for the following types of folders: Header caching greatly speeds up opening large folders because for remote folders, headers usually only need to be downloaded once. For Maildir and MH, reading the headers from a single file is much faster than looking at possibly thousands of single files since Maildir and MH use one file per message.

Header caching can be enabled via the configure script and the --enable-hcache option. It's not turned on by default because external database libraries are required: If set to point to a file, one database file for all folders will be used which may result in lower performance , but one file per folder if it points to a directory.

In addition to caching message headers only, Mutt can also cache whole message bodies. There, Mutt will create a hierarchy of subdirectories named like the account and mailbox path the cache is for. In a header or body cache directory, Mutt creates a directory hierarchy named like: All files can be removed as needed if the consumed disk space becomes an issue as Mutt will silently fetch missing items again. Pathnames are always stored in UTF-8 encoding. Mutt does not yet support maintenance features for header cache database files so that files have to be removed in case they grow too big.

It depends on the database library used for header caching whether disk space freed by removing messages is re-used. Cleaning means to remove messages from the cache which are no longer present in the mailbox which only happens when other mail clients or instances of Mutt using a different body cache location delete messages Mutt itself removes deleted messages from the cache when syncing a mailbox. As cleaning can take a noticeable amount of time, it should not be set in general but only occasionally.

The --enable-exact-address switch can be given to configure to build it with write-support for the latter syntax. You may also have compiled Mutt to co-operate with Mixmaster, an anonymous remailer. Mixmaster permits you to send your messages anonymously using a chain of remailers. Mixmaster support in Mutt is for mixmaster version 2. To use it, you'll have to obey certain restrictions. Most important, you cannot use the Cc and Bcc headers. To tell Mutt to use mixmaster, you have to select a remailer chain, using the mix function on the compose menu.

The chain selection screen is divided into two parts. In the larger upper part, you get a list of remailers you may use. In the lower part, you see the currently selected chain of remailers. You can also delete entries from the chain, using the corresponding function. This means that the remailer in question cannot be used as the final element of a chain, but will only forward messages to other mixmaster remailers.

For details on the other capabilities, please have a look at the mixmaster documentation. Sidebar adds the following functions to Mutt. By default, none of them are bound to keys. The Compressed Folder patch allows Mutt to read mailbox files that are compressed.

But it isn't limited to compressed files. It works well with encrypted files, too. The patch adds three hooks to Mutt: They define commands to: There are some examples of both compressed and encrypted files, later. For now, the documentation will just concentrate on compressed files.

The shell-command must contain two placeholders for filenames: These placeholders should be placed inside single-quotes to prevent unintended shell expansions. If Mutt is unable to open a file, it then looks for open-hook that matches the filename. If your compression program doesn't have a well-defined extension, then you can use. Mutt has an open-hook whose regexp matches the filename: Mutt uses the command gzip -cd to create a temporary file that it can read.

When Mutt has finished with a compressed mail folder, it will look for a matching close-hook to recompress the file. This hook is optional. If the folder has not been modified, the close-hook will not be called. Mutt has a close-hook whose regexp matches the filename: Mutt uses the command gzip -c to create a new compressed file. When Mutt wants to append an email to a compressed mail folder, it will look for a matching append-hook. Using the append-hook will save time, but Mutt won't be able to determine the type of the mail folder inside the compressed file.

Mutt also uses this type for temporary files. Mutt will only use the append-hook for existing files. The close-hook will be used for empty, or missing files. If not, data will be lost. Mutt has an append-hook whose regexp matches the filename: Mutt uses the command gzip -c to append to an existing compressed file. Mutt assumes that an empty file is not compressed. This could be a security risk. First of all, Mutt contains no security holes included by intention but may contain unknown security holes. As a consequence, please run Mutt only with as few permissions as possible.

Especially, do not run Mutt as the super user. When configuring Mutt, there're some points to note about secure setups so please read this chapter carefully. Although Mutt can be told the various passwords for accounts, please never store passwords in configuration files. Besides the fact that the system's operator can always read them, you could forget to mask it out when reporting a bug or asking for help via a mailing list. Even worse, your mail including your password could be archived by internet search engines, mail-to-news gateways etc.

It may already be too late before you notice your mistake. Mutt uses many temporary files for viewing messages, verifying digital signatures, etc. As long as being used, these files are visible by other users and maybe even readable in case of misconfiguration. In a longer running mutt session, others can make assumptions about your mailing habits depending on the number of messages sent. As Mutt be can be set up to be the mail client to handle mailto: Arbitrary header fields can be embedded in these links which could override existing header fields or attach arbitrary files using the Attach: To prevent these issues, Mutt by default only accepts the Subject and Body headers.

Mutt in many places has to rely on external applications or for convenience supports mechanisms involving external applications. One of these is the mailcap mechanism as defined by RfC Besides the mailcap mechanism, Mutt uses a number of other external utilities for operation, for example to provide crypto support, in backtick expansion in configuration files or format string filters. The same security considerations apply for these as for tools involved via mailcap. It can be tuned on on a folder-basis using folder-hook s:.

These settings work on a per-message basis. However, as messages may greatly differ in size and certain operations are much faster than others, even per-folder settings of the increment variables may not be desirable as they produce either too few or too much progress updates. Reading messages from remote folders such as IMAP an POP can be slow especially for large mailboxes since Mutt only caches a very limited number of recently viewed messages usually 10 per session so that it will be gone for the next session.

To improve performance and permanently cache whole messages, please refer to Mutt's so-called body caching for details. When searching mailboxes either via a search or a limit action, for some patterns Mutt distinguishes between regular expression and string searches. Even though a regular expression search is fast, it's several times slower than a pure string search which is noticeable especially on large folders.

As a consequence, a string search should be used instead of a regular expression search if the user already knows enough about the search pattern. This is especially true for searching message bodies since a larger amount of input has to be searched. As for regular expressions, a lower case string search pattern makes Mutt perform a case-insensitive search except for IMAP because for IMAP Mutt performs server-side searches which don't support case-insensitivity.

Running mutt with no arguments will make Mutt attempt to read your spool mailbox. However, it is possible to read other mailboxes and to send messages from the command line as well. Simply redirect input from the file you wish to send. An include file passed with -i will be used as the body of the message. When combined with -E , the include file will be directly edited during message composition. The file will be modified regardless of whether the message is sent or aborted.

A draft file passed with -H will be used as the initial header and body for the message. Multipart messages can be used as a draft file. When combined with -E , the draft file will be updated to the final state of the message after composition, regardless of whether the message is sent, aborted, or even postponed. Note that if the message is sent encrypted or signed, the draft file will be saved that way too. All files passed with -a file will be attached as a MIME part to the message. In addition to accepting a list of email addresses, Mutt also accepts a URL with the mailto: This is useful when configuring a web browser to launch Mutt when clicking on mailto links.

Specifies a regular expression to match against the body of the message, to determine if an attachment was mentioned but mistakenly forgotten. Like other regular expressions in Mutt, the search is case sensitive if the pattern contains at least one upper case letter, and case insensitive otherwise. If set to yes , when composing messages and no subject is given at the subject prompt, composition will be aborted. If set to no , composing messages with no subject given at the subject prompt will never be aborted.

If set to yes , composition will automatically abort after editing the message body if no changes are made to the file this check only happens after the first edit of the file. When set to no , composition will never be aborted. The following printf 3 -style sequences are available:. Controls whether 8-bit data is converted to 7-bit using either Quoted- Printable or Base64 encoding when sending mail. Controls whether ANSI color codes in messages and color tags in rich text messages are to be interpreted.

Messages containing these codes are rare, but if this option is set , their text will be colored accordingly. Note that this may override your color choices, and even present a security problem, since a message could include a line like. On slow network or modem links this will make response faster because there is less that has to be redrawn on the screen when moving to the next or previous entries in the menu. If set , Mutt will prompt you for blind-carbon-copy Bcc recipients before editing an outgoing message. If set , Mutt will prompt you for carbon-copy Cc recipients before editing the body of an outgoing message.

This variable is a colon-separated list of character encoding schemes for messages without character encoding indication. Header field values and message body content without character encoding indication would be assumed that they are written in one of this list. This variable is a colon-separated list of character encoding schemes for text file attachments. For example, the following configuration would work for Japanese text handling:.

The following printf 3 -style sequences are understood:. The separator to add between attachments when operating saving, printing, piping, etc on a list of tagged attachments. If this variable is unset , when operating saving, printing, piping, etc on a list of tagged attachments, Mutt will concatenate the attachments and will operate on them as a single attachment.

When set , Mutt will operate on the attachments one by one. This is the string that will precede a message which has been included in a reply. The locale used by strftime 3 to format dates in the attribution string. This variable is to allow the attribution date format to be customized by recipient or folder using hooks. By default, Mutt will use your locale environment, so there is no need to set this except to override that default. When set , functions in the index menu which affect a message will be applied to all tagged messages if there are any.

The send-menu may still be accessed once you have finished editing the body of your message. When this variable is set , mutt will beep when an error occurs. When this variable is set , mutt will beep whenever it prints a message notifying you of new mail. Controls whether you will be asked to confirm bouncing messages. If set to yes you don't get asked if you want to bounce a message.

Setting this variable to no is not generally useful, and thus not recommended, because you are unable to bounce messages. When this variable is set , mutt will include Delivered-To headers when bouncing messages. Postfix users may wish to unset this variable. The option is unset by default because many visual terminals don't permit making the cursor invisible.

This can lead to some situations where the order doesn't make intuitive sense. In those cases, it may be desirable to unset this variable. This variable specifies the file where the certificates you trust are saved. When an unknown certificate is encountered, you are asked if you accept it or not. If you accept it, the certificate can also be saved in this file and further connections are automatically accepted. You can also manually add CA certificates in this file. Any server certificate that is signed with one of these CA certificates is also automatically accepted.

Character set your terminal uses to display and enter textual data. Polipo caches arbitrary partial instances in its in-memory cache. It will only store the initial segment of a partial instance from its beginning up to its first hole in its on-disk cache, though. In either case, it will attempt to use range requests to fetch the missing data.

In fact, there are some others. In particular, any cached data for the resource they refer to must be discarded, and they can never be pipelined. For more information, please see Tunnelling connections. With the right configuration options, Polipo can run as a daemon.

All flags are optional. The flag -h causes Polipo to print a short help message and to quit. The flag -v causes Polipo to list all of its configuration variables and quit. The flag -x causes Polipo to purge its on-disk cache and then quit see Purging. There is a number of variables that you can tweak in order to configure Polipo, and they should all be described in this manual see Variable index. Configuration variables can be set either on the command line or else in the configuration file given by the -c command-line flag.

Configuration variables are typed, and -v will display their types. The type can be of one of the following:. The configuration file has a very simple syntax. Other lines must be of the form. It is possible to change the configuration of a running polipo by using the local configuration interface see Web interface. If the configuration variable daemonise is set to true, Polipo will run as a daemon: The variable daemonise defaults to false.

When Polipo is run as a daemon, it can be useful to get it to atomically write its pid to a file. If the variable pidFile is defined, it should be the name of a file where Polipo will write its pid. If the file already exists when it is started, Polipo will refuse to run. When it encounters a difficulty, Polipo will print a friendly message. The location where these messages go is controlled by the configuration variables logFile and logSyslog.

If logSyslog is true , error messages go to the system log facility given by logFacility. If logFile is set, it is the name of a file where all output will accumulate. If logSyslog is false and logFile is empty, messages go to the error output of the process normally the terminal. It defaults to The amount of logging is controlled by the variable logLevel. Keeping extensive logs on your users browsing habits is probably a serere violation of their privacy. If the variable scrubLogs is set, then Polipo will scrub most, if not all, private information from its logs.

Telling your user-agent web browser to use Polipo is an operation that depends on the browser. Polipo will then write-out all its in-memory data to disk and quit. Finally, if Polipo receives the SIGUSR2 signal, it will write out all the in-memory data to disk and discard as much of the memory cache as possible.

It will then reopen the log file and reload the forbidden URLs file. Polipo includes a local web server, which is accessible on the same port as the one the proxy listens to. If you use polipo as a publicly accessible web server, you might want to set the variable disableProxy , which will prevent it from acting as a web proxy. You will also want to set disableLocalInterface see Web interface , and perhaps run Polipo in a chroot jail. URLs under this root do not correspond to on-disk files, but are generated by Polipo on-the-fly.

For example, the following page contains the index of the cached pages from the server of some random company:. This functionality is disabled by default, and can be enabled by setting the variable disableIndexing. If you have multiple users, you will probably want to disable the local interface by setting the variable disableLocalInterface. You may also selectively control setting of variables, indexing and listing known servers by setting the variables disableConfiguration , disableIndexing and disableServersList. There are three fundamental values that control how Polipo speaks to clients.

The variable proxyAddress , defines the IP address on which Polipo will listen; by default, its value is the loopback address " By setting this variable to a global IP address or to one of the special values ":: This is likely to be a security hole unless you set allowedClients to a reasonable value see Access control. Note that the type of address that you specify for proxyAddress will determine whether Polipo listens to IPv4 or IPv6. Currently, the only way to have Polipo listen to both protocols is to specify the IPv6 unspecified address ":: The variable proxyName , which defaults to the host name of the machine on which Polipo is running, defines the name of the proxy.

This can be an arbitrary string that should be unique among all instances of Polipo that you are running. A finer form of access control can be implemented by specifying explicitly a number of client addresses or ranges of addresses networks that a client is allowed to connect from. This is done by setting the variable allowedClients. It can also be a network address, i. A different form of access control can be implemented by requiring each client to authenticate , i.

Polipo currently only implements the most insecure form of authentication, HTTP basic authentication , which sends usernames and passwords in clear over the network. If you need to access Polipo over the public Internet, the only secure option is to have it listen over the loopback interface only and use an ssh tunnel see Parent proxies 4. A server can have multiple addresses, for example if it is multihomed connected to multiple networks or if it can speak both IPv4 and IPv6.

Polipo will try all of a hosts addresses in turn; once it has found one that works, it will stick to that address until it fails again. The variable useTemporarySourceAddress controls the use of temporary addresses for outgoing connections; if set to true temporary addresses are preferred, if set to false static addresses are used and if set to maybe the default the operation system default is in effect.

This setting is not available on all operation systems. The variable allowedPorts is not considered for tunnelled connections; see Tunnelling connections. If the variable laxHttpParser is not set it is set by default , Polipo will use a strict parser, and refuse to serve an instance unless it could parse all the headers. The size of big buffers, and therefore the maximum amount of headers Polipo can parse, is specified by the variable bigBufferSize 32kB by default.

Polipo offers the option to censor given HTTP headers in both client requests and server replies. While they do not actually prevent such statistics from being collected, they might make it less cost-effective to do so. The general mechanism is controlled by the variable censoredHeaders , the value of which is a case-insensitive list of headers to unconditionally censor. I recommend setting censorReferer to maybe.

Recent versions of HTTP include a mechanism known as content negotiation which allows a user-agent and a server to negotiate the best representation instance for a given resource. Most of these headers do not expose sensitive information who cares whether your browser supports PNG? A typical French user, for example, will prefer an English-language original to a French mis- translation, while still wanting to see French language texts when they are original.

Implementors of intermediate caches proxies have found it useful to convert the media type of certain entity bodies. A non-transparent proxy might, for example, convert between image formats in order to save cache space or to reduce the amount of traffic on a slow link. This directive forbids compliant intermediate caches from responding with an object that was compressed or transformed in any way.

In an ideal world, all machines would have perfect connectivity to the network at all times and servers would never crash. In the real world, it may be necessary to avoid hitting the network and have Polipo serve stale objects from its cache. Setting proxyOffline to true prevents Polipo from contacting remote servers, no matter what.

This setting is suitable when you have no network connection whatsoever. If a server has not been accessed for a time interval of at least serverExpireTime , information about it will be discarded. As Polipo will eventually recover from incorrect information about a server, this value can be made fairly large. The reason why it exists at all is to limit the amount of memory used up by information about servers. The most important piece of information about a server is whether it supports persistent connections. Another use of server information is to decide whether to pipeline additional requests on a connection that already has in-flight requests.

This is controlled by the variable pipelineAdditionalRequests ; if it is false , no additional requests will be pipelined. If it is true , additional requests will be pipelined whenever possible. If it is maybe the default , additional requests will only be pipelined following small requests, where a small request one whose download is estimated to take no more than smallRequestTime default 5s.

Sometimes, a request has been pipelined after a request that prompts a very large reply from the server; when that happens, the pipeline needs be broken in order to reduce latency. The variable maxPipelineTrain defines the maximum number of requests that will be pipelined in a single write default Setting this variable to a very low value might or might not fix interaction with some unreliable servers that the normal heuristics are unable to detect.

Setting this variable to 0 may cause some media players that abuse the HTTP protocol to work. If the variable pmmSize is set to a positive value, Polipo will use PMM when speaking to servers that are known to support pipelining. It will request resources by segments of pmmSize bytes. The first segment requested has a size of pmmFirstSize , which defaults to twice pmmSize.