Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Function Mail / Return-Path & Received
Halloo. Ich hab schon danach gesucht, aber ich werde nicht schlauer. Ich möchte gerne den PHP-Absender verändern. Ich weis das es geht, nur nicht wie.
@ durch .at. ersetzt
Return-Path: <nobody.at.hollii.tld>
Received: from hollii.tld (localhost [127.0.0.1])
by hollii.tld (8.12.11/8.12.10) with ESMTP id usFgsQTGImA77D8jrSzc5lSJXZ2S2PZIo
for <beitrag.at.halloo.tld>; Sat, 2 Oct 2004 04:00:21 +0200
Received: (from nobody.at.localhost)
by hollii.tld (8.12.11/8.12.11/Submit) id usFgsQTGImA77D8jrSzc5lSJXZ2S2PZIo;
Sat, 2 Oct 2004 04:00:21 +0200
Date: Sat, 2 Oct 2004 04:00:21 +0200
To: beitrag.at.halloo.tld
Subject: Halloo.tld - Neuer Beitrag im Forum: Kölner Promis
From: "Halloo.tld Postbote" <postbote.at.halloo.tld>
Message-ID: <200410020220.8bbe3c526025.at.halloo.tld>
X-Priority: 3
X-Mailer: vBulletin Mail via PHP
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-1arm-MailScanner-Software: F-Prot Antivirus
X-1arm-MailScanner-Virencheck: Found to be clean
X-1arm-MailScanner-Email-From: nobody.at.hollii.tld
Status:
Halloo, bla bla bla Text und zwar möchte ich gerne, da hin und wieder wohl Mails an GMX und Web.de Adressen im Spamordner landen, gerne einen richtigen Absender angeben.
und zwar den Return-Path: <nobody.at.hollii.tld> und Received: (from nobody.at.localhost). Allerdings verstehe ich nicht wie. Habe zwar schon in der PHP-Dokumentation gelesen, nur komme ich an Hand von Englishen Beschreibungen nicht weiter. Beispiele dazu habe ich auch noch keine gefunden.
Auch das Received: from hollii.tld (localhost [127.0.0.1]) würde ich gerne anpassen. Aber das kann man bestimmt nicth verändern oder doch? Viel lieber wäre mir Received: from hollii.tld (halloo.tld [62.141.xx.xxx])
Bitte gebt mich Tips :o :( :rolleyes:
PS: Komme als root auch an alle Dateien ran. und Hollii.de ist der Servername und Halloo.de die Domain, mit der ich das vorhabe.
du kannst alle möglichen angaben per header übergeben
wie "From:" oder Content-Type:
genau so kannst du auch Return-Path: übergeben
was den server angeht von wo es gesendet wurde, da bin ich mir nicht ganz sicher
muss mich schlau machen
kannst ja auch per header probieren ;)
eventuell die ip adresse in der php.ini kontrollieren ( sendmail )
Moin. Ja genau das habe ich ja auch schon rausgefunden. Nur weis ich nicht wo und wie ich das einstellen muss/kann.
Und bei der php.ini habe ich schon mal geschaut, aber da finde ich nix, wo ich das einstellen könnte. Ausser dem hier finde ich dort nix. und das nützt bei linux recht wenig.
[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
;sendmail_from = me@example.com Ist so aus der php.ini übernommen. Muss ich das eher an PHP oder an vBulletin einstellen?
Was ich noch sagen wollte: Ich habe nämlich mehrere Gästebücher und Foren, die via PHP mailen. Bei denen soll ja dann auch nicht die Adresse des meines Forums stehen. :confused:
hast du statische oder dynamische IP?
und wie versendestb du mails über smtp oder sendmail?
SMTP = localhost trag mal an stelle von localhost ( ist immer 127.0.0.1 ;) )
deine aktuelle IP ein bzw die, die du drin haben möchtest ( nicht vergessen die ports freizuschalten 25 für smtp )
eventuell klappts
Wie bei nem internetserver ne Dynamische IP? :confused:
Ich hab nen Root-server mit 3 festen IP-Adressen (statischen). und der versendet Mails über Sendmail, steht ja auch im ersten Post im E-mail-Header. Aber warum da eine IP eintragen? Sendmail läuft doch über localhost, und ausserdem steht da fett früber "For Win32 only". Jetzt verstehe ich gar nix mehr.
Ps 127.0.0.1 ist localhost und auch localhost.localdomain ;)
dann musst due sendmail config durchgehen
wocher soll ich wissen von wo du die mails abschicken willst??
hab schon früher im namen von Bill Gates an bekannte mails verschickt von eigenen rechner mit localen smtp server ^^
schau in der konfig von sendmail nach was da für IP eingetragen ist
Es geht hier im die PHP-Mailfunktion und nicht um Sendmail. Ich glaube nicht, das man dazu was an Sendmail ändern muss. Wie gesagt. Auf meinem Server befinden sich mehrere Domains / Foren / Gästenbücher... und mit was ich maile steht doch oben. PHP-Mailfunktion! ;) (Steht sogar im Titel...)
In der Datei /etc/mail/sendmail.mc habe ich nun folgende Zeile entdeckt,
/etc/mail/senmail.mc
dnl ** DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl Aber ob ich das ändern darf? :confused:
und das hier
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
na dann gibts einfach als header mit Received: from hollii.de (halloo.de [62.141.50.170]) ;)
probieren geht über studieren
Ich geh immer auf Nummer sicher. Denn sind nich gerade wenige Mails am Tag, die von Sendmail verarbeitet werden. Einen Ausfall kann ich mir nicht erlauben. (1200 Emails am Tag / ohne Spam ; mit Spam etwa 3000 am Tag : IN und OUT zusammen)
Wäre als dankbar, wenn sich der Sache mal jemand annimmt, der sich damit auskennt. Mein Provider hat nur geschrieben.
lesen Sie die Dokumentation zu PHP (http://php.net) zur Funktion mail (->Suche in Funktionsliste). Hab ich, aber ich werde nicht schlauer. :confused:
Hätte ich bloss einen Testserver :cool:
ich teste es mal bei mir zu hause
hab nen linux server am netz hängen :D
Danke. Vielleicht mal ganz gut, aber ich hoffe mal, das sich vielleicht jemand damit auskennt.
Die Mails die ich von hier (vBulletin-Germany.com) bekomme, tragen ein ein Received von.... Aber denoch steht da nobody@.. beim Teturn-Path...
Return-Path: <nobody.at.executor.jelsoft.com>
Received: from executor.jelsoft.com (executor.jelsoft.com [69.93.104.196])
Hat denn niemand Ahnung davon? :(
Versuchs mal so:
mail("empfaenger@gmx.de", "Betreff der E-Mail", "NachrichtenText", "From: absender@domain.de\nReply-To: absender@domain.de", "-fabsender@domain.de");
wichtig ist das "-f..." am Ende dann sollte GMX und co. die e-mails annehmen. Bei mir hats auf jedenfall so funktioniert.
Greetz Alex
Aber wo soll ich das eintragen? Hab das jetzt schon öfter versucht, aber klappt nicht. Muss sicherlich in eine PHP-Datei. Nur in welche?
Sicher ist das PHP code... Wie meinst du das in welche Datei?
Eigentlich genau an der Stelle an der sonst die E-Mail auch versendet wird.
Ich weiß ja nicht was für ein Script du sonst dafür benutzt... ;)
hm ich würde sagen ich verwende die sendmessage.php von vBulletin. ich kann zwar im Admincp "-f" Parameter für mail() aktivieren, aber dann versendet der gar keine mails mehr. deswegen müsste ich jetzt wissen, wie ich das in die sendmessage.php, die bei mir k.php heisst, einbaue.
Kann ich dir nicht sagen, da ich dieses Script nicht kenne.
Aber am einfachsten schauen wo der mail() befehl im Script steht und dann ändern.
Dürfte ja nicht all zu schwer sein die Stelle zu finden...
:rolleyes:
Ich finde im überigen keinen mail() Befehl in der sendmessage.php. :confused:
Die Funktion vbmail steckt dahinter
=> nach "vbmail" suchen.
Ich will es nicht nur für vB einstellen, sondern generell auf dem server!! Ich habe mehrere Boards usw. und überall steht returnpath: nobody@..... :(
da soll aber entsprechend immer die richtige adresse angezeigt werden, geht doch bei anderenn auch..
StGaensler
16.03.2005, 07:25
Entweder, du machst das generell in der php.ini, und trägst dort
sendmail_from = me@example.com ein, oder du bearbeitest die httpd.conf (oder ähnlich), und trägst dort für jeden Server im <directory>-Abschnitt
php_admin_value sendmail_from me@example.com mit entsprechender eMail-Adresse ein.
Meintest du das?
Gandalf2003
22.06.2005, 16:52
hallo hollii,
nur ma nachgefragt, wie haste es denn nun letztendlich gelöst bekommen?
Gar nicht.. :( Denn meinste ich sitze monatelang rum und warte das mir jemand hilft.. ;) Ich habs wochenlang versucht und es hat nix funktioniert. Hab ja zwischenzeitlich Dokumentation über Tutorial gelesen und auch einige Leute befragt, wo ich dachte, das die es wissen sollten. Die, die es aber wissen, wie z.b. Techniker schreiben mir immer sowas, wenn ich frage:
Lesen Sie die Dokumentation zu PHP, wir können hier keine PHP-Schulung machen. hab ich mehrfach, aber ich raff es trotzdem nicht.. Aber soweit war ich schonmal:
benutzen Sie bei PHP die Funktion mail() (Doku -> http://php.net). Bei dem 5. Parameter der Funktion geben Sie '-fpostbote@domain.de' an. Hatte sogar schon Ausfälle, so das Emails weder gesendet, noch empfangen werden konnten, weil ich so ziemlich alles ausprobiert habe.
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postbote@domain.de" Darauf kommt in vBulletin dieses Meldung:
Beim Versuch, die E-Mail zu verschicken, trat ein Fehler auf.
SMTP: localhost
sendmail_from: Keines
sendmail_path: /usr/sbin/sendmail -t -i -f postbote@domain.de
Gandalf2003
23.06.2005, 03:15
na, verzweifeln würde ich nicht, denn irgendwer muss es ja wissen!, und hier wird sicherlich mal über kurz oder lang sich das prob noch mal annehmen oder? *daumendrück*
tja. und ich bin immer noch nicht weiter :( mir hilft ja auch niemand. sendmail_from
php_admin_value sendmail_from "emailatdomain.de" nimmt er ja schonmal, aber mit dem F-Parameter das wird nix. kommt immer ne fehlermeldungen,aber in den Logs taucht nix auf :(
Er erkennt das auch und zeigt das im ACP auch an, aber passiert nix. und selbstverständlich habe ich es mit eingeschaltetem f- und ohne (das im ACP) versucht. eine Niete nach der anderen.
php_admin_value sendmail_path "sendmail -t -i -f emailatdomain.de"
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f emailatdomain.de"
sendmail_path "/usr/sbin/sendmail -t -i -f emailatdomain.de"
sendmail_path "sendmail -t -i -f emailatdomain.de"
Keine Ahnung was bei dir ACP ist wo es angezeigt wird, aber das -f im PHP mail Befehl funktioniert wenn du in der php.ini safe_mode = Off setzt.
Alex
ACP = vBulletin Administrator Kontrollzentrum. Auch mit deaktiviertem safe_mode hab ich schon versucht. -nix zu machen. :(
Beim Versuch, die E-Mail zu verschicken, trat ein Fehler auf.
Bitte überprüfen Sie, ob Ihr Mail-Server richtig konfiguriert ist und PHP darüber E-Mails verschicken darf. Sie sollten außerdem das Fehlerprotokoll Ihres Mail-Servers für weitere Informationen kontrollieren. //edit^: Es geht :D yeahhhhhhhhhhhhhhhhh man darf den f-parameter auch nich mehr aktivieren. also den im Admincp. hab den jetzt aus und es geht :D :D :D
Also zum host oder Tarif folgendes hinzufügen:
php_admin_value sendmail_path "sendmail -t -i -f team@forum.xx"
php_admin_value sendmail_from "team@forum.xx" //edit^: nochmal edit: hm der hinweis steht in der email, die gesendet wurde. warnung oder hinweis?
X-Authentication-Warning: domain.de: nobody set sender to team@forum.xx using -f
Na also nach langem probieren gehts ja dann doch *g*
ach ja, als kleiner Tipp... Wenn der Webserver von meheren Leuten genutzt wird ist es nicht ratsam in der php.ini den safe_mode für alle Domains ab zu schalten sondern sinnvoller in der httpd.conf vom Apache explizit nur für eine Domain:
<Directory "/direkter/pfad/zum/webordner">
php_admin_flag safe_mode Off
</Directory>
<Directory "/direkter/pfad/zum/webordner">
php_admin_flag safe_mode Off
</Directory> 1. viel zu kompliziert, 2. Dazu habe ich die Features in Keyhelp. Entweder direkt im Tarif (auch für mehrere Domains), oder aber direkt in den Features zur Domain.
Halloo. Um es mal auf den Punkt zu bringen (zusammenzufassen). :)
Damit Emails die mit mail()-Funktion von PHP versendet werden, nicht als Spam erkannt werden, trage ich in den Host oder den Tarif der Domain folgendes ein.
php_admin_value sendmail_path "sendmail -t -i -f email@domain.tld"
php_admin_value sendmail_from "email@domain.tld" Damit wird jetzt aber eine Meldung in versendeten Emails ausgegeben.
X-Authentication-Warning: domain.de: nobody set sender to email@domain.tld using -f Damit das nicht passiert, muss man den Benutzer mit dem der http-Server läuft, in die Datei 'trusted-users' (z.b. /etc/mail/trusted-users) eintragen. In meinem Fall ist das der Benutzername 'nobody'. Danach wird der Return-Path korrekt gesetzt und auch die Warnung taucht nicht mehr auf. :)
Return-Path: <email@domain.tld>
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.