POSTFIX
Inleiding
Met het programma Postfix op een linux systeem kan mail verzonden en verstuurd worden. Er zijn een paar instellingen die soms gedaan moeten worden. Tevens het gebruik van het lokale mailprogramma wordt in deze hoofdstuk uitgelegd (mail,nail,mailx)
De instellingen
De instellingen die belangrijk zijn om via Postfix mail te kunnen versturen staan in '/etc/postfix/main.cf'. De volgende instellingen zijn belangrijk:
myhostname="fully qualified hostname" relayhost=bla.wzs.amsterdam.nl
De laatste instelling is verplicht. Indien deze parameter niet gevuld is, wordt de mail niet verstuurd naar de ontvanger (postfix zoekt dan zelf de relayhost op via het 'mx-record' van het domein, wat een mail relay host teruggeeft die niet relayed -XXXXX )
alternatieve instelling
Er kan ook direct gerelayed worden naar een mailserver van de dienst
Echter, dan moet de verzendende server opgenomen worden in de 'allowed hosts' lijstje van de DICT. Dit betekent een changerequest.
De hierboven omschreven optie via cups omzeilt dit.
Mail manipulaties
Nu kan er dus mail verstuurd worden vanaf de host met het commando 'mail' of 'nail'. Dit kan interactief of scriptsgewijs. Een aantal voorbeeldscriptjes zijn:
nail -s "subject" -r "afzender" "mailadres" -a "attachment" << EOF bla body bla groetje EOF mail bla@amsterdam.nl -s 'hallootjes' -r joop@bla.tk < /proc/cpuinfo mail bla@amsterdam.nl -s 'hallootjes' -r joop@bla.tk -a attachment < /proc/cpuinfo
of simpeler:
mail -s "subject" "mailadres" </temp/vandaag.log
Interactief gebruik van mail
Als je interactief gebruik maakt van het programma 'mail', zijn er een aantal spelregels (voor de 'mail' of 'nail' prompt) . Als er bijv. 389 mailtjes zijn kun je het laatste mailtje lezen door gewoon '389' in te typen op de prompt. Verlaat met 'q' Ander handige commando's zijn:
save --> bewaar de gelezen mail, de uitvoer geeft aan waar de mail terechtkomt (bijv. '/root/mbox') help --> geeft aan hoe je een mail kan versturen list --> laat alle commando's zien (een soort help maar dan uitgebreider) next --> ga naar het volgende mailtje d 1 --> delete mail 1 d 1-300 --> delete mail 1 t/m 300 header --> laat de lijst met mail zien q --> verlaat de applicatie
De mailboxen
De postfix mailbox is opgeslagen in de directory '/var/spool/mail/"username". De gelezen en opgeslagen mail (gaat automatisch bij het afsluiten) staat in "user_home_dir"/mbox.
De postfix deliveryqueue legen/flushen
#postqueue -f <-- waarschijnlijk niet het goede commando #postsuper -d <queueID>
Alles verwijderen:
#postsuper -d ALL
Het queueID kun je vinden met
#postqueue -p
Alle systeem mail for root verwijderen
echo 'd*' | mail -N
De postfix queue bekijken
#mailq
of
#postqueue -p
Een werkende postfix configuratiefile main.cf
Hier volgt een goed werkende file voor de transparent mail relay host cups:
relay_domains = $mydestination, hash:/etc/postfix/relay virtual_alias_maps = hash:/etc/postfix/virtual #virtual_uid_maps = static:303 #virtual_gid_maps = static:303 #virtual_minimum_uid = 303 #virtual_mailbox_base = /srv/maildirs #virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf #virtual_mailbox_limit = 0 #virtual_mailbox_limit_inbox = no #virtual_mailbox_limit_maps = hash:/etc/postfix/vquota #virtual_mailbox_limit_override = yes #virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf #virtual_transport = virtual ## Additional for quota support #virtual_create_maildirsize = yes #virtual_mailbox_extended = yes ### Needs Maildir++ compatible IMAP servers, like Courier-IMAP #virtual_maildir_filter = yes #virtual_maildir_filter_maps = hash:/etc/postfix/vfilter #virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf #virtual_mailbox_limit_override = yes #virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. #virtual_maildir_limit_message_maps = hash:/etc/postfix/vmsg #virtual_overquota_bounce = yes #virtual_trash_count = yes #virtual_trash_name = ".Trash" ############################################################ # End MySQL from postfixwiki.org ############################################################ inet_protocols = all biff = no mail_spool_directory = /var/mail canonical_maps = hash:/etc/postfix/canonical virtual_alias_domains = hash:/etc/postfix/virtual relocated_maps = hash:/etc/postfix/relocated transport_maps = hash:/etc/postfix/transport sender_canonical_maps = hash:/etc/postfix/sender_canonical masquerade_exceptions = root masquerade_classes = envelope_sender, header_sender, header_recipient myhostname = bla.wzs.amsterdam.nl delay_warning_time = 1h message_strip_characters = \0 program_directory = /usr/lib/postfix inet_interfaces = xxx #inet_interfaces = localhost masquerade_domains = mydestination = $myhostname, localhost.$mydomain defer_transports = mynetworks = xxx #mynetworks_style = subnet disable_dns_lookups = no relayhost = smtprelay.basis.lan content_filter = mailbox_command = mailbox_transport = strict_8bitmime = no disable_mime_output_conversion = no smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_client_restrictions = permit_mynetworks smtpd_helo_required = no smtpd_helo_restrictions = strict_rfc821_envelopes = no smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination smtp_sasl_auth_enable = no smtpd_sasl_auth_enable = no smtpd_use_tls = no smtp_use_tls = no smtp_enforce_tls = no alias_maps = hash:/etc/aliases mailbox_size_limit = 0 message_size_limit = 0