Apache2+fcgi+suexec+mail() funktion und virtuelle User
Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo,
ich habe folgendes Problem:
Wenn ein Kunde auf dem Server die mail() Funktion von PHP verwendt, führt diese unter dem Benutzer des Kunden die Versenung aus. Da es sich aber bei den Benutzern nur um virtuelle Benutzer handelt, welche mit lib_nss für Apache-Fcgi und SuExec verwendbar gemacht werden.
Anscheinend kann aber postfix/sendmail mit den BenutzerIDs nichts anfangen und findet darunter keinen Benutzer:
tail -f /var/log/mail.err
Dec 20 16:28:49 uranus postfix/sendmail[21709]: fatal: no login name found for user ID 10007
Weis jemand wie ich das hinbekomme?
Also so, das die Kunden über die mail() Funktion wieder senden können?
Dank euch schonmal.
ich habe folgendes Problem:
Wenn ein Kunde auf dem Server die mail() Funktion von PHP verwendt, führt diese unter dem Benutzer des Kunden die Versenung aus. Da es sich aber bei den Benutzern nur um virtuelle Benutzer handelt, welche mit lib_nss für Apache-Fcgi und SuExec verwendbar gemacht werden.
Anscheinend kann aber postfix/sendmail mit den BenutzerIDs nichts anfangen und findet darunter keinen Benutzer:
tail -f /var/log/mail.err
Dec 20 16:28:49 uranus postfix/sendmail[21709]: fatal: no login name found for user ID 10007
Weis jemand wie ich das hinbekomme?
Also so, das die Kunden über die mail() Funktion wieder senden können?
Dank euch schonmal.
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo wecki,
Warum läßt du die User nicht direkt mit ihrem User über den SMTP Dienst deines Servers Mails verschicken. Damit könntest du doch dein Problem umgehen.
Gruß
Markus
Warum läßt du die User nicht direkt mit ihrem User über den SMTP Dienst deines Servers Mails verschicken. Damit könntest du doch dein Problem umgehen.
Gruß
Markus
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo,
Die User dürfen ja über den SMTP Dienst Mails verschicken. Von localhost halt.
Aber das funktioniert leider nicht.
Oder muss ich dies irgendwo einstellen?
In den php.inis ist ja der Hinweis, das dies nur für Win Systeme einzustellen ist.
Ich habe außerdem dieses System als Backup von einem anderen Server eingespielt. Da lief alles. Nun weis ich nciht warum es das jetzt nicht macht.
Die User dürfen ja über den SMTP Dienst Mails verschicken. Von localhost halt.
Aber das funktioniert leider nicht.
Oder muss ich dies irgendwo einstellen?
In den php.inis ist ja der Hinweis, das dies nur für Win Systeme einzustellen ist.
Ich habe außerdem dieses System als Backup von einem anderen Server eingespielt. Da lief alles. Nun weis ich nciht warum es das jetzt nicht macht.
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Mmh, bevor hier alle anfangen zu raten nenne doch m al deine Systemumgebung. Was für ein OS läuft auf dem Server, läuft eine Configoberfläche wie Confixx, Plesk, etc.
Sind die beiden Server wirklich 100% identisch (Softwareseitig)?
Sind die beiden Server wirklich 100% identisch (Softwareseitig)?
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo,
als Oberfläche läuft SysCP mit etwas Modifikation, damit es mit FastCGI läuft.
Das Betriebssystem ist Debian 3.1.
Die Konfiguration von Apache2 ist definitiv identisch. Genau wie PHP. Diese habe ich nämlich kopiert und die IPs angepasst.
Wie versucht denn mail() die eMails zu senden? Ich müsste ja erlauben, das alle Mailanfragen an SMTP von localhost/127.0.0.1 beantwortet werden. Wie mache ich das?
als Oberfläche läuft SysCP mit etwas Modifikation, damit es mit FastCGI läuft.
Das Betriebssystem ist Debian 3.1.
Die Konfiguration von Apache2 ist definitiv identisch. Genau wie PHP. Diese habe ich nämlich kopiert und die IPs angepasst.
Wie versucht denn mail() die eMails zu senden? Ich müsste ja erlauben, das alle Mailanfragen an SMTP von localhost/127.0.0.1 beantwortet werden. Wie mache ich das?
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo,
Nochmal zur Klarstellung: es sind virtuelle User aus einder MySQL Datenbank.
Nochmal zur Klarstellung: es sind virtuelle User aus einder MySQL Datenbank.
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo nochmal,
wie richte ich denn Postfix so ein, das es alle eMails, welche von der PHP Funktion Mail() gesendet werden (gleich welchen Benutzers) transportiert. Netürlich nur wenn die Mail Funktion auch auf dem Server ausgeführt wird. Will ja kein offenes Relay)?
Und das ganze dann auch noch mit virtuellen Nutzern/Gruppen.
Hat da wer ne gute Internetseite, Howto oder ein Beispiel für mich?
Ich such jetzt schon seit 2 Tagen nach der Problemlösung. Find aber nix. Oder ich such unter dem falschen Schlagwort.
@acepilot:
Wie mache ich das:
"Warum läßt du die User nicht direkt mit ihrem User über den SMTP Dienst deines Servers Mails verschicken. Damit könntest du doch dein Problem umgehen. "
Ich denke nämlich das es bei mri anscheinend doch nicht so ist.
wie richte ich denn Postfix so ein, das es alle eMails, welche von der PHP Funktion Mail() gesendet werden (gleich welchen Benutzers) transportiert. Netürlich nur wenn die Mail Funktion auch auf dem Server ausgeführt wird. Will ja kein offenes Relay)?
Und das ganze dann auch noch mit virtuellen Nutzern/Gruppen.
Hat da wer ne gute Internetseite, Howto oder ein Beispiel für mich?
Ich such jetzt schon seit 2 Tagen nach der Problemlösung. Find aber nix. Oder ich such unter dem falschen Schlagwort.
@acepilot:
Wie mache ich das:
"Warum läßt du die User nicht direkt mit ihrem User über den SMTP Dienst deines Servers Mails verschicken. Damit könntest du doch dein Problem umgehen. "
Ich denke nämlich das es bei mri anscheinend doch nicht so ist.
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
normalerweise über das Programm was im sendmail_path in der php.ini steht.wecki wrote:Hallo,
Wie versucht denn mail() die eMails zu senden? Ich müsste ja erlauben, das alle Mailanfragen an SMTP von localhost/127.0.0.1 beantwortet werden. Wie mache ich das?
Deinen zweiten Satz verstehe ich nicht ganz, bei meiner (ohne syscp) Lösung können die Domains über smtp einfach verschicken, ein permit_mynetworks in der main.cf braucht es imho aber.
Wenn Du Leute smtp inklusive Authentifizierung nutzen sollen (und nicht das sendmail Programm) geht es imho nicht mit mail(), sondern mit extra mail classen wie z.B. PhpMailer
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Hallo,
ich habe das Problem, das ich Apache2 mit SuExec und FastCGI laufen habe. Da werden alle PHP FIles mit dem entsprechenden Benutzer ausgeführt.
Wenn nun ein Kunde mittels mail() z.B. ein Kontaktformular absenden möchte steht in meiner mail.err der Fehler, das der entsprechende User nicht gefunden werden kann.
postfix/sendmail[23651]: fatal: no login name found for user ID 10046
Warum Postfix dann nach dem User sucht oder Ihn nicht findet weis ich nicht. Auf dem alten Server hat es damit hingehauen, dass die Kunden lokal die Mails so verschicken konnten. Auch Ohne das diese als Systemuser angelegt waren. Nun will Sendmali anscheinend Systemuser. Und die habe ich dafür nicht.
Auch an den php.inis wurde nichts verändert.
Ich will im Prinzip nur, dass Benutzer sich Authentifizieren müssen, wenn Sie SMTP von extern nutzen. Sprich z.B. mit Outlook oder von nem anderen Server. Aber wenn es lokal ist und z.B. über mail() geschickt wird, müssen die Mails auch so raus gehen.
Was muss ich denn in die my_destination eintragen? Dort steht bisher:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
myhostname = host1.xyz.de
mydomain = host1.xyz.de
mydestination = $myhostname $mydomain localhost localhost.$mydomain
mynetworks = 127.0.0.0/8
alias_maps = $alias_database
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
virtual_mailbox_base = /var/kunden/mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
ich habe das Problem, das ich Apache2 mit SuExec und FastCGI laufen habe. Da werden alle PHP FIles mit dem entsprechenden Benutzer ausgeführt.
Wenn nun ein Kunde mittels mail() z.B. ein Kontaktformular absenden möchte steht in meiner mail.err der Fehler, das der entsprechende User nicht gefunden werden kann.
postfix/sendmail[23651]: fatal: no login name found for user ID 10046
Warum Postfix dann nach dem User sucht oder Ihn nicht findet weis ich nicht. Auf dem alten Server hat es damit hingehauen, dass die Kunden lokal die Mails so verschicken konnten. Auch Ohne das diese als Systemuser angelegt waren. Nun will Sendmali anscheinend Systemuser. Und die habe ich dafür nicht.
Auch an den php.inis wurde nichts verändert.
Ich will im Prinzip nur, dass Benutzer sich Authentifizieren müssen, wenn Sie SMTP von extern nutzen. Sprich z.B. mit Outlook oder von nem anderen Server. Aber wenn es lokal ist und z.B. über mail() geschickt wird, müssen die Mails auch so raus gehen.
Was muss ich denn in die my_destination eintragen? Dort steht bisher:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
myhostname = host1.xyz.de
mydomain = host1.xyz.de
mydestination = $myhostname $mydomain localhost localhost.$mydomain
mynetworks = 127.0.0.0/8
alias_maps = $alias_database
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
virtual_mailbox_base = /var/kunden/mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
Re: Apache2+fcgi+suexec+mail() funktion und virtuelle User
Du erforderst imho sasl auth für alle, versuch mal:
Damit sollten User die von mynetworks kommen (127.0.0.1) keine Authentifizierung brauchen.
postifx dann reloaden.
/etc/init.d/postfix reload
Ob das allerdings bei syscp so richtig ist kann dir das syscp forum sicher besser beantworten. Solche Interfaces intergrieren immer ein großen Wust an Paketen und rumfuschen so wie mit Standalone installationen (was ich hier versuche) kann in die Hose gehen.
Code: Select all
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destinationpostifx dann reloaden.
/etc/init.d/postfix reload
Ob das allerdings bei syscp so richtig ist kann dir das syscp forum sicher besser beantworten. Solche Interfaces intergrieren immer ein großen Wust an Paketen und rumfuschen so wie mit Standalone installationen (was ich hier versuche) kann in die Hose gehen.