Hallo an alle,
ich habe mich mal wieder bei mir mit dem Thema Exim beschäftigt. Es läuft ja soweit, dass es lokal die Mails zustellt, jedoch kann ich aus der Kommandozeile heraus keine E-Mails versenden.
Die Mails werden von GMX abgelehnt, weil das From-Feld leer ist.
Ich habe jetzt schon rumgegoogelt und im Handbuch "The Exim SMTP mail server" vom Philip Hazel gelesen (vielleicht mangels Englisch aber nicht alles verstanden).
Ich habe keine Ahnung, wo ich hinfassen soll und worüber GMX stolpert. Liegt es am: Received: from andreas by server-2.doham.de (siehe Fehlermeldung 1) oder
Wenn ja, wie kann ich es ändern? Das Rewriting funktioniert, soweit ich das mitbekomme.
der Befehl exim -brw andreas hat folgende Ausgabe ============== sender: andreas.oettel@gmx.net from: andreas.oettel@gmx.net to: andreas@server-2.doham.de cc: andreas@server-2.doham.de bcc: andreas@server-2.doham.de reply-to: andreas.oettel@gmx.net env-from: andreas.oettel@gmx.net env-to: andreas@server-2.doham.de ==============
Danke für Eure Hilfe. Andreas
Anbei die Dateien aus dem spool-Verzeichnis und die Konfigurationsdatei
==Fehlermeldung 1======================================== 1No0L2-0002Ro-Qv-D This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed:
andreas.oettel@ibaoe.de SMTP error from remote mail server after MAIL FROM:andreas.oettel@gmx.net SIZE=1492 AUTH=andreas@server-2.doham.de: host mail.gmx.net [213.165.64.20]: 550 5.7.0 Sender address does not belong to logged in user {mp010}
------ This is a copy of the message, including all the headers. ------
Return-path: andreas.oettel@gmx.net Received: from andreas by server-2.doham.de with local (Exim 4.63) (envelope-from andreas.oettel@gmx.net) id 1No0L1-0002Rl-Q8 for andreas.oettel@ibaoe.de; Sat, 06 Mar 2010 21:11:03 +0100 To: andreas.oettel@ibaoe.de Subject: Test1 Message-Id: E1No0L1-0002Rl-Q8@server-2.doham.de From: Andreas Oettel andreas.oettel@gmx.net Date: Sat, 06 Mar 2010 21:11:03 +0100 X-SA-Exim-Scanned: No (on server-2.doham.de); Exit with error (see exim mainlog)
Test1 ==Ende Fehlermeldung 1===================================
==Fehlermeldung 2======================================== 2010-03-06 21:11:04 Received from <> R=1No0L1-0002Rl-Q8 U=Debian-exim P=local S=1577 2010-03-06 21:11:05 andreas.oettel@gmx.net R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<> SIZE=2636: host mail.gmx.net [213.165.64.21]: 550 5.1.7 This server does not accept an empty envelope from ( http://portal.gmx.net/serverrules ) {mp026} *** Frozen (delivery error message) ==Ende Fehlermeldung 2===================================
==Statusmeldung========================================== 1No0L2-0002Ro-Qv-H Debian-exim 100 102 <> 1267906264 0 -ident Debian-exim -received_protocol local -body_linecount 24 -allow_unqualified_recipient -allow_unqualified_sender -frozen 1267906265 -localerror XX 1 andreas.oettel@gmx.net
153P Received: from Debian-exim by server-2.doham.de with local (Exim 4.63) id 1No0L2-0002Ro-Qv for andreas.oettel@gmx.net; Sat, 06 Mar 2010 21:11:04 +0100 045 X-Failed-Recipients: andreas.oettel@ibaoe.de 029 Auto-Submitted: auto-replied 061F From: Mail Delivery System Mailer-Daemon@server-2.doham.de 027T To: andreas.oettel@gmx.net 059 Subject: Mail delivery failed: returning message to sender 050I Message-Id: E1No0L2-0002Ro-Qv@server-2.doham.de 038 Date: Sat, 06 Mar 2010 21:11:04 +0100 081 X-SA-Exim-Scanned: No (on server-2.doham.de); Exit with error (see exim mainlog) ==Ende Statusmeldung=====================================
==Konfigurationsdatei==================================== ######### # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # This file is generated dynamically from the files in # the conf.d/ directory, or from exim4.conf.template respectively. # Additional information is read from update-exim4.conf.conf # This version of the file was created from the directory /etc/exim4 # Any changes you make here will be lost. # See /usr/share/doc/exim4-base/README.Debian.gz and update-exim4.conf(8) # for instructions of customization. # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING #########
exim_path = /usr/sbin/exim4
.ifndef CONFDIR CONFDIR = /etc/exim4 .endif
.ifndef DC_minimaldns DC_minimaldns = 1 .endif
.ifndef DC_visiblename DC_visiblename=server-2.doham.de .endif
.ifndef MAIN_LOCAL_DOMAINS MAIN_LOCAL_DOMAINS = @:localhost:server-2.doham.de .endif domainlist local_domains = MAIN_LOCAL_DOMAINS
.ifndef MAIN_RELAY_TO_DOMAINS MAIN_RELAY_TO_DOMAINS = .endif domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS
.ifndef MAIN_RELAY_NETS MAIN_RELAY_NETS = 192.168.92.0/16 : 127.0.0.1 : ::::1 .endif hostlist relay_from_hosts = MAIN_RELAY_NETS
.ifdef DC_visiblename qualify_domain = DC_visiblename .endif
.ifndef DCreadhost DCreadhost = gmx.net .endif
.ifndef DCsmarthost DCsmarthost = mail.gmx.net .endif
.ifdef MAIN_LOCAL_INTERFACES local_interfaces = MAIN_LOCAL_INTERFACES .else local_interfaces = <; 127.0.0.1;192.168.92.11 .endif
.ifndef LOCAL_DELIVERY LOCAL_DELIVERY=mail_spool .endif
gecos_pattern = ^([^,:]*) gecos_name = $1
.ifndef DCconfig_satellite .ifndef DCconfig_internet .ifndef DCconfig_local .ifndef DCconfig_smarthost DCconfig_smarthost = 1 .endif .endif .endif .endif
.ifndef CHECK_RCPT_LOCAL_LOCALPARTS CHECK_RCPT_LOCAL_LOCALPARTS = ^[.] : ^.*[@%!/|`#&?] .endif
.ifndef CHECK_RCPT_REMOTE_LOCALPARTS CHECK_RCPT_REMOTE_LOCALPARTS = ^[./|] : ^.*[@%!`#&?] : ^.*/\.\./ .endif
.ifndef MAIN_LOG_SELECTOR MAIN_LOG_SELECTOR = +tls_peerdn .endif
.ifndef MAIN_ACL_CHECK_MAIL MAIN_ACL_CHECK_MAIL = acl_check_mail .endif acl_smtp_mail = MAIN_ACL_CHECK_MAIL
.ifndef MAIN_ACL_CHECK_RCPT MAIN_ACL_CHECK_RCPT = acl_check_rcpt .endif acl_smtp_rcpt = MAIN_ACL_CHECK_RCPT
.ifndef MAIN_ACL_CHECK_DATA MAIN_ACL_CHECK_DATA = acl_check_data .endif acl_smtp_data = MAIN_ACL_CHECK_DATA
.ifdef MESSAGE_SIZE_LIMIT message_size_limit = MESSAGE_SIZE_LIMIT .endif
.ifdef MAIN_ALLOW_DOMAIN_LITERALS allow_domain_literals .endif
.ifndef DC_minimaldns .ifndef MAIN_HOST_LOOKUP MAIN_HOST_LOOKUP = * .endif host_lookup = MAIN_HOST_LOOKUP .endif
primary_hostname = server-2.doham.de
.ifndef MAIN_FORCE_SENDER local_from_check = false local_sender_retain = true untrusted_set_sender = * .endif
.ifndef MAIN_IGNORE_BOUNCE_ERRORS_AFTER MAIN_IGNORE_BOUNCE_ERRORS_AFTER = 2d .endif ignore_bounce_errors_after = MAIN_IGNORE_BOUNCE_ERRORS_AFTER
.ifndef MAIN_TIMEOUT_FROZEN_AFTER MAIN_TIMEOUT_FROZEN_AFTER = 7d .endif timeout_frozen_after = MAIN_TIMEOUT_FROZEN_AFTER
.ifndef MAIN_FREEZE_TELL MAIN_FREEZE_TELL = postmaster .endif freeze_tell = MAIN_FREEZE_TELL
.ifndef SPOOLDIR SPOOLDIR = /var/spool/exim4 .endif spool_directory = SPOOLDIR
.ifndef MAIN_TRUSTED_USERS MAIN_TRUSTED_USERS = uucp .endif trusted_users = MAIN_TRUSTED_USERS .ifdef MAIN_TRUSTED_GROUPS trusted_groups = MAIN_TRUSTED_GROUPS .endif
.ifdef MAIN_TLS_ENABLE .ifndef MAIN_TLS_ADVERTISE_HOSTS MAIN_TLS_ADVERTISE_HOSTS = * .endif tls_advertise_hosts = MAIN_TLS_ADVERTISE_HOSTS
.ifdef MAIN_TLS_CERTKEY tls_certificate = MAIN_TLS_CERTKEY .else .ifndef MAIN_TLS_CERTIFICATE MAIN_TLS_CERTIFICATE = CONFDIR/exim.crt .endif tls_certificate = /etc/exim4/secure/certkey
.ifndef MAIN_TLS_PRIVATEKEY MAIN_TLS_PRIVATEKEY = CONFDIR/exim.key .endif tls_privatekey = /etc/exim4/secure/privkey .endif
.ifndef MAIN_TLS_VERIFY_CERTIFICATES MAIN_TLS_VERIFY_CERTIFICATES = ${if exists{/etc/ssl/certs/ca-certificates.crt}\ {/etc/ssl/certs/ca-certificates.crt}\ {/dev/null}} .endif tls_verify_certificates = MAIN_TLS_VERIFY_CERTIFICATES
.ifdef MAIN_TLS_VERIFY_HOSTS tls_verify_hosts = MAIN_TLS_VERIFY_HOSTS .endif
.ifndef MAIN_TLS_TRY_VERIFY_HOSTS MAIN_TLS_TRY_VERIFY_HOSTS = * .endif tls_try_verify_hosts = MAIN_TLS_TRY_VERIFY_HOSTS
.endif
local_scan_path = /usr/lib/exim4/local_scan/sa-exim.so
.ifdef MAIN_LOG_SELECTOR log_selector = MAIN_LOG_SELECTOR .endif
begin acl
acl_whitelist_local_deny: accept hosts = ${if exists{CONFDIR/local_host_whitelist}\ {CONFDIR/local_host_whitelist}\ {}} accept senders = ${if exists{CONFDIR/local_sender_whitelist}\ {CONFDIR/local_sender_whitelist}\ {}}
.ifdef WHITELIST_LOCAL_DENY_LOCAL_ACL_FILE .include WHITELIST_LOCAL_DENY_LOCAL_ACL_FILE .endif
acl_check_mail: .ifdef CHECK_MAIL_HELO_ISSUED deny message = no HELO given before MAIL command condition = ${if def:sender_helo_name {no}{yes}} .endif
accept
acl_check_rcpt:
accept hosts = :
.ifdef CHECK_RCPT_LOCAL_LOCALPARTS deny domains = +local_domains local_parts = CHECK_RCPT_LOCAL_LOCALPARTS message = restricted characters in address .endif
.ifdef CHECK_RCPT_REMOTE_LOCALPARTS deny domains = !+local_domains local_parts = CHECK_RCPT_REMOTE_LOCALPARTS message = restricted characters in address .endif
accept .ifndef CHECK_RCPT_POSTMASTER local_parts = postmaster .else local_parts = CHECK_RCPT_POSTMASTER .endif domains = +local_domains : +relay_to_domains
.ifdef CHECK_RCPT_VERIFY_SENDER deny message = Sender verification failed !acl = acl_whitelist_local_deny !verify = sender .endif
deny !acl = acl_whitelist_local_deny senders = ${if exists{CONFDIR/local_sender_callout}\ {CONFDIR/local_sender_callout}\ {}} !verify = sender/callout
accept hosts = +relay_from_hosts control = submission/sender_retain
accept authenticated = * control = submission/sender_retain
require message = relay not permitted domains = +local_domains : +relay_to_domains
require verify = recipient
deny !acl = acl_whitelist_local_deny recipients = ${if exists{CONFDIR/local_rcpt_callout}\ {CONFDIR/local_rcpt_callout}\ {}} !verify = recipient/callout
deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster !acl = acl_whitelist_local_deny senders = ${if exists{CONFDIR/local_sender_blacklist}\ {CONFDIR/local_sender_blacklist}\ {}}
deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster !acl = acl_whitelist_local_deny hosts = ${if exists{CONFDIR/local_host_blacklist}\ {CONFDIR/local_host_blacklist}\ {}}
.ifdef CHECK_RCPT_REVERSE_DNS warn message = X-Host-Lookup-Failed: Reverse DNS lookup failed for $sender_host_address (${if eq{$host_lookup_failed}{1}{failed}{deferred}}) condition = ${if and{{def:sender_host_address}{!def:sender_host_name}}\ {yes}{no}} .endif
.ifdef CHECK_RCPT_SPF deny message = [SPF] $sender_host_address is not allowed to send mail from ${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}. \ Please see http://www.openspf.org/why.html?sender=$sender_address&ip=$sender_host_a... log_message = SPF check failed. condition = ${run{/usr/bin/spfquery --ip "$sender_host_address" --mail-from "$sender_address" --helo "$sender_helo_name"}\ {no}{${if eq {$runrc}{1}{yes}{no}}}}
defer message = Temporary DNS error while checking SPF record. Try again later. condition = ${if eq {$runrc}{5}{yes}{no}}
warn message = Received-SPF: ${if eq {$runrc}{0}{pass}{${if eq {$runrc}{2}{softfail}\ {${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}{${if eq {$runrc}{6}{none}{error}}}}}}}}}} condition = ${if <={$runrc}{6}{yes}{no}}
warn log_message = Unexpected error in SPF check. condition = ${if >{$runrc}{6}{yes}{no}}
warn message = X-SPF-Guess: ${run{/usr/bin/spfquery --ip "$sender_host_address" --mail-from "$sender_address" \ --helo "$sender_helo_name" --guess true}\ {pass}{${if eq {$runrc}{2}{softfail}{${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\ {${if eq {$runrc}{6}{none}{error}}}}}}}}}} condition = ${if <={$runrc}{6}{yes}{no}}
defer message = Temporary DNS error while checking SPF record. Try again later. condition = ${if eq {$runrc}{5}{yes}{no}} .endif
.ifdef CHECK_RCPT_IP_DNSBLS warn message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) dnslists = CHECK_RCPT_IP_DNSBLS .endif
.ifdef CHECK_RCPT_DOMAIN_DNSBLS warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text) log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text) !senders = ${if exists{CONFDIR/local_domain_dnsbl_whitelist}\ {CONFDIR/local_domain_dnsbl_whitelist}\ {}} dnslists = CHECK_RCPT_DOMAIN_DNSBLS .endif
.ifdef CHECK_RCPT_LOCAL_ACL_FILE .include CHECK_RCPT_LOCAL_ACL_FILE .endif
accept domains = +relay_to_domains endpass verify = recipient
accept
acl_check_data:
.ifdef CHECK_DATA_VERIFY_HEADER_SYNTAX deny message = Message headers fail syntax check !acl = acl_whitelist_local_deny !verify = header_syntax .endif
.ifdef CHECK_DATA_VERIFY_HEADER_SENDER deny message = No verifiable sender address in message headers !acl = acl_whitelist_local_deny !verify = header_sender .endif
.ifdef CHECK_DATA_LOCAL_ACL_FILE .include CHECK_DATA_LOCAL_ACL_FILE .endif
accept
begin routers
#!!! #Hier die Route zum Smarthost (GMX) #!!!
smart_route_gmx: driver = manualroute transport = remote_smtp_gmx route_list = !+local_domains mail.gmx.net senders = CONFDIR/passwd.client
#Ende
.ifdef MAIN_ALLOW_DOMAIN_LITERALS domain_literal: debug_print = "R: domain_literal for $local_part@$domain" driver = ipliteral domains = ! +local_domains transport = remote_smtp .endif
hubbed_hosts: debug_print = "R: hubbed_hosts for $domain" driver = manualroute domains = "${if exists{CONFDIR/hubbed_hosts}\ {partial-lsearch;CONFDIR/hubbed_hosts}\ fail}" same_domain_copy_routing = yes route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}} transport = remote_smtp
.ifdef DCconfig_internet
dnslookup_relay_to_domains: debug_print = "R: dnslookup_relay_to_domains for $local_part@$domain" driver = dnslookup domains = ! +local_domains : +relay_to_domains transport = remote_smtp same_domain_copy_routing = yes no_more
dnslookup: debug_print = "R: dnslookup for $local_part@$domain" driver = dnslookup domains = ! +local_domains transport = remote_smtp same_domain_copy_routing = yes ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\ 172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16 :\ 255.255.255.255 no_more
.endif
.ifdef DCconfig_local nonlocal: debug_print = "R: nonlocal for $local_part@$domain" driver = redirect domains = ! +local_domains allow_fail data = :fail: Mailing to remote domains not supported no_more
.endif
.ifdef DCconfig_smarthost DCconfig_satellite
smarthost: debug_print = "R: smarthost for $local_part@$domain" driver = manualroute domains = ! +local_domains transport = remote_smtp_smarthost route_list = * DCsmarthost byname host_find_failed = defer same_domain_copy_routing = yes no_more
.endif
real_local: debug_print = "R: real_local for $local_part@$domain" driver = accept domains = +local_domains local_part_prefix = real- check_local_user transport = LOCAL_DELIVERY
system_aliases: debug_print = "R: system_aliases for $local_part@$domain" driver = redirect domains = +local_domains allow_fail allow_defer data = ${lookup{$local_part}lsearch{/etc/aliases}} .ifdef SYSTEM_ALIASES_USER user = SYSTEM_ALIASES_USER .endif .ifdef SYSTEM_ALIASES_GROUP group = SYSTEM_ALIASES_GROUP .endif .ifdef SYSTEM_ALIASES_FILE_TRANSPORT file_transport = SYSTEM_ALIASES_FILE_TRANSPORT .endif .ifdef SYSTEM_ALIASES_PIPE_TRANSPORT pipe_transport = SYSTEM_ALIASES_PIPE_TRANSPORT .endif .ifdef SYSTEM_ALIASES_DIRECTORY_TRANSPORT directory_transport = SYSTEM_ALIASES_DIRECTORY_TRANSPORT .endif
.ifdef DCconfig_satellite hub_user: debug_print = "R: hub_user for $local_part@$domain" driver = redirect domains = +local_domains data = ${local_part}@DCreadhost check_local_user
hub_user_smarthost: debug_print = "R: hub_user_smarthost for $local_part@$domain" driver = manualroute domains = DCreadhost transport = remote_smtp_smarthost route_list = * DCsmarthost byname host_find_failed = defer same_domain_copy_routing = yes check_local_user .endif
userforward: debug_print = "R: userforward for $local_part@$domain" driver = redirect domains = +local_domains check_local_user file = $home/.forward require_files = $local_part:$home/.forward no_verify no_expn check_ancestor allow_filter forbid_smtp_code = true directory_transport = address_directory file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply skip_syntax_errors syntax_errors_to = real-$local_part@$domain syntax_errors_text = \ This is an automatically generated message. An error has\n\ been found in your .forward file. Details of the error are\n\ reported below. While this error persists, you will receive\n\ a copy of this message for every message that is addressed\n\ to you. If your .forward file is a filter file, or if it is\n\ a non-filter file containing no valid forwarding addresses,\n\ a copy of each incoming message will be put in your normal\n\ mailbox. If a non-filter file contains at least one valid\n\ forwarding address, forwarding to the valid addresses will\n\ happen, and those will be the only deliveries that occur.
procmail: debug_print = "R: procmail for $local_part@$domain" driver = accept domains = +local_domains check_local_user transport = procmail_pipe require_files = ${local_part}:\ ${if exists{/etc/procmailrc}\ {/etc/procmailrc}{${home}/.procmailrc}}:\ +/usr/bin/procmail no_verify no_expn
maildrop: debug_print = "R: maildrop for $local_part@$domain" driver = accept domains = +local_domains check_local_user transport = maildrop_pipe require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop no_verify no_expn
local_user: debug_print = "R: local_user for $local_part@$domain" driver = accept domains = +local_domains check_local_user local_parts = ! root transport = LOCAL_DELIVERY cannot_route_message = Unknown user
mail4root: debug_print = "R: mail4root for $local_part@$domain" driver = redirect domains = +local_domains data = /var/mail/mail file_transport = address_file local_parts = root user = mail group = mail
begin transports
#!!! # Hier der Transport #!!!
remote_smtp_gmx: debug_print = "T: remote_smtp_smarthost for $local_part@$domain" driver = smtp
# Änderung von 'hosts_try_auth' zu 'hosts_require_auth' bewirkt keine Änderung hosts_try_auth = ${if exists{CONFDIR/passwd.client} \ {\ ${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$host_address}}\ }\ {} \ } headers_rewrite = *@+local_domains $1@DCreadhost frs : *@server-2.doham.de $1@DCreadhost frs return_path = ${if match_domain{$sender_address_domain}{+local_domains}{${sender_address_local_part}@DCreadhost}{${if match_domain{$sender_address_domain}{server-2.doham.de}{${sender_address_local_part}@DCreadhost}fail}}}
#Aukommentieren von 'hosts_require_auth...' bewirkt keine Änderung hosts_require_auth = mail.gmx.net
#Ende
address_file: debug_print = "T: address_file for $local_part@$domain" driver = appendfile delivery_date_add envelope_to_add return_path_add
address_pipe: debug_print = "T: address_pipe for $local_part@$domain" driver = pipe return_fail_output
address_reply: debug_print = "T: autoreply for $local_part@$domain" driver = autoreply
mail_spool: debug_print = "T: appendfile for $local_part@$domain" driver = appendfile file = /var/mail/$local_part delivery_date_add envelope_to_add return_path_add group = mail mode = 0660 mode_fail_narrower = false
maildir_home: debug_print = "T: maildir_home for $local_part@$domain" driver = appendfile .ifdef MAILDIR_HOME_MAILDIR_LOCATION directory = MAILDIR_HOME_MAILDIR_LOCATION .else directory = $home/Maildir .endif .ifdef MAILDIR_HOME_CREATE_DIRECTORY create_directory .endif .ifdef MAILDIR_HOME_CREATE_FILE create_file = MAILDIR_HOME_CREATE_FILE .endif delivery_date_add envelope_to_add return_path_add maildir_format .ifdef MAILDIR_HOME_DIRECTORY_MODE directory_mode = MAILDIR_HOME_DIRECTORY_MODE .else directory_mode = 0700 .endif .ifdef MAILDIR_HOME_MODE mode = MAILDIR_HOME_MODE .else mode = 0600 .endif mode_fail_narrower = false
maildrop_pipe: debug_print = "T: maildrop_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/maildrop" return_path_add delivery_date_add envelope_to_add
procmail_pipe: debug_print = "T: procmail_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/procmail" return_path_add delivery_date_add envelope_to_add
remote_smtp: debug_print = "T: remote_smtp for $local_part@$domain" driver = smtp
remote_smtp_smarthost: debug_print = "T: remote_smtp_smarthost for $local_part@$domain" driver = smtp hosts_try_auth = ${if exists{CONFDIR/passwd.client} \ {\ ${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$host_address}}\ }\ {} \ } headers_rewrite = *@+local_domains $1@DCreadhost frs : *@server-2.doham.de $1@DCreadhost frs return_path = ${if match_domain{$sender_address_domain}{+local_domains}{${sender_address_local_part}@DCreadhost}{${if match_domain{$sender_address_domain}{server-2.doham.de}{${sender_address_local_part}@DCreadhost}fail}}}
address_directory: debug_print = "T: address_directory for $local_part@$domain" driver = appendfile delivery_date_add envelope_to_add return_path_add check_string = "" escape_string = "" maildir_format
begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
# !!! # Anmerkung die Änderung von sF zu sfF bewirkt keine Besserung # !!!
begin rewrite andreas@server-2.doham.de andreas.oettel@gmx.net sF
*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\ {$value}fail}" Ffrs *@server-2.doham.de "${lookup {${local_part}} lsearch {/etc/email-addresses} {$value} fail }" Ffrs
begin authenticators
plain_server: driver = plaintext public_name = PLAIN server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" server_set_id = $auth2 server_prompts = : .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} .endif
login_server: driver = plaintext public_name = LOGIN server_prompts = "Username:: : Password::" server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" server_set_id = $auth1 .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} .endif
cram_md5_server: driver = cram_md5 public_name = CRAM-MD5 server_secret = ${extract{2}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}fail}}} server_set_id = $auth1
cram_md5: driver = cram_md5 public_name = CRAM-MD5 client_name = ${extract{1}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}} client_secret = ${extract{2}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}}
PASSWDLINE=${sg{\
${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}\ }\ {\N[\^]\N}\ {^^}\ }
login: driver = plaintext public_name = LOGIN .ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS client_send = "<; ${if and{\ {!eq{$tls_cipher}{}}\ {!eq{PASSWDLINE}{}}\ }\ {}fail}\ ; ${extract{1}{::}{PASSWDLINE}}\ ; ${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}" .else client_send = "<; ${if !eq{PASSWDLINE}{}\ {}fail}\ ; ${extract{1}{::}{PASSWDLINE}}\ ; ${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}" .endif
==Ende Konfigurationsdatei===============================
Hallo Andreas,
Andreas Oettel rc5.dresden@gmx.de (So 07 Mär 2010 12:26:43 CET):
Hallo an alle,
ich habe mich mal wieder bei mir mit dem Thema Exim beschäftigt. Es läuft ja soweit, dass es lokal die Mails zustellt, jedoch kann ich aus der Kommandozeile heraus keine E-Mails versenden.
Die Mails werden von GMX abgelehnt, weil das From-Feld leer ist.
Wahrscheinlich redest Du vom RFC822-From (bzw. RFC5322), also vom Mailheader, nicht vom Envelope (RFC821 bzw. RFC5321).
Wie genau sieht die Ausrede von GMX aus? Wie genau sieht Deine Mail aus, die Du in den Exim reinschreibst? Möglicherweise enthält Deine Mail wirklich keine 822-From:-Zeile, der Exim fühlt sich auch nicht bevollmächtigt, eine reinzuschreiben. Wenn er was reinschreibt, dann möglicherweise eine Sender:-Zeile.
Das Rewriting funktioniert, soweit ich das mitbekomme.
…
Ja, das sieht so aus, als *würde* es was tun, aber das Rewriting schreibt keine nicht-existierenden Zeilen um.
Hallo Heiko,
ich habe die Ursache gefunden. :o(
In der Konfigdatei sind am Ende die Methoden für die verschiedenen Anmeldeverfahren (cram_md5, plain, login) abgelegt (siehe unten Anhang)
Stand der Dinge zur Zeit ist: Bei GMX kann man mit cram_md5 und einem pop3-Abruf E-Mail versenden.
Ursache, dass es bisher nicht ging: Ich habe plain und login nicht auskommentiert. Das Problem ist dann wahrscheinlich, dass sich exim das falsche Verfahren schnappt und auf der Nase landet.
Das Dumme an der ganzen Sache ist, dass ich durch die Fummelei an den Dateien an meinem anderen Smarthost der bei All-Inkl liegt nicht mehr rankomme. Das hatte gestern noch funktioniert. :o(
Ich kenne bisher auch noch keine Möglichkeit einen Route an einen Authentifizierungsverfahren zu binden. Wenn da jemand einen Tipp hätte wäre das hilfreich.
Andreas
==========Anhang Konfigdatei===================== cram_md5: driver = cram_md5 public_name = CRAM-MD5 client_name = ${extract{1}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}} client_secret = ${extract{2}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}}
# this returns the matching line from passwd.client and doubles all ^ PASSWDLINE=${sg{\
${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}\ }\ {\N[\^]\N}\ {^^}\ }
plain: driver = plaintext public_name = PLAIN .ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS client_send = "<; ${if !eq{$tls_cipher}{}\ {^${extract{1}{:}{PASSWDLINE}}\ ^${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}\ }fail}" .else client_send = "<; ^${extract{1}{:}{PASSWDLINE}}\ ^${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}" .endif
login: driver = plaintext public_name = LOGIN .ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS # Return empty string if not non-TLS AND looking up $host in passwd-file # yields a non-empty string; fail otherwise. client_send = "<; ${if and{\ {!eq{$tls_cipher}{}}\ {!eq{PASSWDLINE}{}}\ }\ {}fail}\ ; ${extract{1}{::}{PASSWDLINE}}\ ; ${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}" .else # Return empty string if looking up $host in passwd-file yields a # non-empty string; fail otherwise. client_send = "<; ${if !eq{PASSWDLINE}{}\ {}fail}\ ; ${extract{1}{::}{PASSWDLINE}}\ ; ${sg{PASSWDLINE}{\N([^:]+:)(.*)\N}{\$2}}" .endif
====================================
Am 09.03.2010 13:13, schrieb Heiko Schlittermann:
Hallo Andreas,
Andreas Oettelrc5.dresden@gmx.de (So 07 Mär 2010 12:26:43 CET):
Hallo an alle,
ich habe mich mal wieder bei mir mit dem Thema Exim beschäftigt. Es läuft ja soweit, dass es lokal die Mails zustellt, jedoch kann ich aus der Kommandozeile heraus keine E-Mails versenden.
Die Mails werden von GMX abgelehnt, weil das From-Feld leer ist.
Wahrscheinlich redest Du vom RFC822-From (bzw. RFC5322), also vom Mailheader, nicht vom Envelope (RFC821 bzw. RFC5321).
Wie genau sieht die Ausrede von GMX aus? Wie genau sieht Deine Mail aus, die Du in den Exim reinschreibst? Möglicherweise enthält Deine Mail wirklich keine 822-From:-Zeile, der Exim fühlt sich auch nicht bevollmächtigt, eine reinzuschreiben. Wenn er was reinschreibt, dann möglicherweise eine Sender:-Zeile.
Das Rewriting funktioniert, soweit ich das mitbekomme.
…
Ja, das sieht so aus, als *würde* es was tun, aber das Rewriting schreibt keine nicht-existierenden Zeilen um.
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Andreas Oettel rc5.dresden@gmx.de (Di 09 Mär 2010 18:46:18 CET):
Hallo Heiko,
ich habe die Ursache gefunden. :o(
In der Konfigdatei sind am Ende die Methoden für die verschiedenen Anmeldeverfahren (cram_md5, plain, login) abgelegt (siehe unten Anhang)
Stand der Dinge zur Zeit ist: Bei GMX kann man mit cram_md5 und einem pop3-Abruf E-Mail versenden.
Ursache, dass es bisher nicht ging: Ich habe plain und login nicht auskommentiert. Das Problem ist dann wahrscheinlich, dass sich exim das falsche Verfahren schnappt und auf der Nase landet.
Exim sollte das Verfahren nehmen, welches der andere in seiner AUTH… Zeile nach dem EHLO anbietet. Er müsste den Authenticator nehmen, dessen public_name auf den/die angebotenen passt.
Das Dumme an der ganzen Sache ist, dass ich durch die Fummelei an den Dateien an meinem anderen Smarthost der bei All-Inkl liegt nicht mehr rankomme. Das hatte gestern noch funktioniert. :o(
Ich kenne bisher auch noch keine Möglichkeit einen Route an einen Authentifizierungsverfahren zu binden. Wenn da jemand einen Tipp hätte wäre das hilfreich.
Ich denke eher, Du wirst ein Authentisierungsverfahren an einen Zielhost binden können. Z.B. mit client_condition könntest Du einen Authenticator „ausblenden“.
Ob das in der debianisierten Version der Config vorgesehen ist, vermag ich nicht zu sagen.
lug-dd@mailman.schlittermann.de