it-swarm.com.de

ich kann keine E-Mails an Adressen in meiner eigenen Domain senden

Ich habe ein einfaches PHP-Skript in meiner Domain, das mir eine E-Mail sendet:

...
$toMail = "[email protected]"; //this works - I get the email at my gmail
$toMail = "[email protected]"; //this doesn't - I get nothing

mail($toMail, $subject, $message, $header); 

Welche Einstellung muss ich ändern, um das Problem zu beheben?

31
sol

Ich hatte dieses Problem selbst, als ich kürzlich eine Website umgestaltete.

Es gab ein Problem mit der Art und Weise, wie unser System eingerichtet wurde, sodass das System der Meinung war, dass es sich um eine Spam-E-Mail handele, da die E-Mail von derselben Domäne stamme.

Erkundigen Sie sich bei Ihrem Systemadministrator, ob Sie die E-Mails senden dürfen usw. 

Entweder das oder Sie müssen die Header so ändern, dass sie von einer externen Adresse gesendet werden. Ich hoffe, Sie bekommen es sortiert.

20
schubySteve

Für die Personen, die Google Apps für E-Mails verwenden, Ihren Host jedoch bei einem anderen Anbieter verwenden, sind dies detailliertere Anweisungen für Personen, die mit cPanel nicht sehr vertraut sind.

Ich könnte das Problem des Versendens von E-Mails von meiner Domäne mithilfe eines Formulars PHP beheben, wenn die E-Mail an ein Konto in meiner Domäne gesendet wird.

d. h. mydomain.com Kontaktformular, das eine E-Mail an [email protected] sendet. Das Vorstehende funktionierte nicht, auch wenn meine Domain über die richtigen MX-Einträge für die Domain verfügt, die Google Apps verwendet.

Wie Mike (und andere) oben erwähnt, wurde das Problem gelöst: Hinzufügen der MX-Datensätze in das cPanel.

  1. Betreten Sie das cPanel
  2. Gehen Sie zum Abschnitt cPanel Mail
  3. Suchen Sie nach MX Entry Maintenance. Manchmal befindet sich kein Text über dem Symbol.
  4. Wählen Sie die zugehörige Domäne aus
  5. Ändern Sie Email Routing zu Remote Mail Exchanger.
  6. Fügen Sie alle Google MX-Datensätze so hinzu, wie sie in Ihrer Domänenkonfiguration vorhanden sind, und verwenden Sie dabei die entsprechenden Prioritätswerte. Sie können die Datensätze hier und die Prioritäten überprüfen https://support.google.com/a/answer/174125
  7. Überprüfen Sie diesen Remote Mail Exchanger. ist ausgewählt.

Mit dieser Einstellung konnte ich E-Mails mit der E-Mail-Funktion PHP an ein E-Mail-Konto in derselben Domäne wie meine Website senden.

Google App-Anweisungen zu MX-Datensätzen https://support.google.com/a/answer/54717?hl=de

47
VicM

Die erste Antwort unter https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail scheint mir richtig zu sein. Das Wichtigste daran ist, dass Sie Folgendes in Ihrer sendmail.mc haben wollen:

define(`MAIL_HUB`, 'example.com.')dnl
define(`LOCAL_RELAY`, 'example.com.')dnl

Wo ist example.com die betreffende Domain?.

13
Michael Hellein

Wenn du benutzt postfix, mach das :

  1. verbinden Sie sich über SSH mit Ihrem Server.
  2. bearbeiten Sie Ihre main.cf Datei :

nano /etc/postfix/main.cf

  1. kommentieren Sie die folgende Zeile mit # :

# mydestination = ...

  1. am Ende des hinzufügen main.cf Dokument:

mydestination =

  1. laden Sie Ihre Postfix-Konfiguration erneut, indem Sie Folgendes ausführen:

/etc/init.d/postfix reload

11

Sie müssen einen zusätzlichen Parameter für Ihre Mail-Funktion festlegen. In Ihrem Arbeitsbeispiel müssen Sie Ihrer E-Mail-Adresse '-f' voranstellen, z.

mail($toMail, $subject, $message, $header, "[email protected]");

10
David Pratt

Ich hatte das gleiche Problem und konnte es auf folgende Weise lösen. Ich speichere E-Mails nicht lokal auf dem Server, sondern verwende MX-Einträge auf dem Registrar, um E-Mails in Google Apps zu leiten. Es stellte sich heraus, dass die MX-Datensätze auch in Cpanel aktualisiert werden mussten, da der Server die MX-Datensätze nicht vom Registrar entnahm, sondern verwarf, da kein lokaler MX-Datensatz oder Postfach vorhanden war. Ich habe die MX-Einträge auf Cpanel so aktualisiert, dass sie mit den MX-Einträgen des Registrators übereinstimmen. Das Problem wurde sofort behoben

3
Mike

Haben Sie Ihre E-Mail-Adresse auf einem anderen Server als der Website? Wenn dies der Fall ist, versucht das Skript PHP möglicherweise, es intern zu senden. In diesem Fall verschwindet es einfach, während die anderen Ziel-E-Mails im Internet abgelegt und ordnungsgemäß weitergeleitet werden.

Die Lösung, die ich gefunden habe, war das Deaktivieren des Mail-Servers auf Ihrem Webhost, und PHP wird die Nachricht an das Internet senden, um ordnungsgemäß gesendet zu werden.

1
Meep3D

Ich stimme Michael Hellein zu, das Hauptproblem könnte Ihre sendmail sein, wenn Sie Ihre E-Mail-Konten für die Domain beispiel.de als lokale Konten betrachten. Wenn ja, hier sind einige Leitlinks:

In meinem Fall mit FreeBSD 8.2 war der eigentliche Trick:

# cd /etc/mail
# vim freebsd.mc

Fügen Sie diese beiden Zeilen hinzu:

define(`MAIL_HUB', `example.com.')dnl
define(`LOCAL_RELAY', `example.com.')dnl

Kurz bevor:

MAILER(local)
MAILER(smtp)

Dann:

# make

Dies ist Ausgabe:

cp freebsd.mc Host.example.com.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 Host.example.com.mc > Host.example.com.cf
cp freebsd.submit.mc Host.example.com.submit.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 Host.example.com.submit.mc > Host.example.com.submit.cf

Dann:

# cp sendmail.cf sendmail.cf.bak
# cp Host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart

Ich hoffe, das erspart jemandem Kopfschmerzen.

1
estepix

Mit PostFix, Debian7, SMTP-Mailjet

Wenn Domäne my-domain.com ist, ändern Sie in /etc/postfix/main.cf 

mydestination = my-domain.com, localhost, localhost.localdomain, localhost

zu 

mydestination = localhost, localhost.localdomain, localhost
1
Nolwennig

Ich hatte auch dieses Problem. Bei Deaktivierung des Mailservers wurde keine E-Mail gesendet! Daher habe ich alle lokalen Domainnamen aus der /etc/mail/local-Host-names-Datei entfernt

0
Roberoo

Ich hatte ein ähnliches Problem, bei dem alle E-Mails perfekt an andere Domains wie Google Mail, Live, Yahoo usw. gesendet wurden, alle E-Mails jedoch auf lokalen Domains verschwinden. Ich hatte einen VPS-Server mit Godaddy, der auf Linux basierte, auf Qmail.

Ich habe das Problem gelöst, indem ich die spezifischen Domänennamen in der Datei var/qmail/control/virtualdomains entfernt habe. 

0
SarthakGupta

Ein SMTP-Mailserver könnte ebenfalls eine Option sein.

vergewissern Sie sich, dass Sie tatsächlich E-Mails an Ihr Domain-E-Mail-Konto senden können, und überprüfen Sie dann Ihren Code/Ihre E-Mail. Stellen Sie sicher, dass alles richtig geschrieben ist.

0
techy

Ich verbringe mehr als 8 Stunden mit diesem Fehler und löse ihn, ändere den Header in eine andere E-Mail-Adresse und es wird funktionieren 

0
Abdou Ghonim

Wie von anderen erläutert, sind einige Server so konfiguriert, dass sie E-Mails ablehnen, denen eine gültige E-Mail-Adresse auf dem sendenden Server fehlt. Stellen Sie sicher, dass die Zeichenfolge $ headers eine definierte gültige E-Mail-Adresse "Von: [email protected]" enthält.

0
Michelle

Dieses Problem hatte ich einige Male, und der Täter war, wenn die E-Mail auf einem anderen Server (z. B. Google Apps) gehostet wurde. Wenn E-Mails an die lokale Domäne gesendet werden, muss der MX-Eintrag nicht nachgeschlagen werden. Daher wird er nicht ordnungsgemäß weitergeleitet. Die Lösung für dieses Problem besteht einfach darin, die Mail-Funktion auf Ihrem Server durch Ihren Host zu deaktivieren. 

0
user258677

Ich hatte das gleiche Problem und da ich auf einem anderen Server für E-Mail gehostet wurde, musste ich nur den lokalen Mail-Server deaktivieren.

0
user208320

Stellen Sie sicher, dass Ihr Datensatz txt für Ihre Domain korrekt eingerichtet ist. Dies geschieht normalerweise, wenn Sie dies nicht in den Datensatz txt einfügen: @ (None)v = spf1 include: _spf.google.com ~ all

0
nezter

Was für mich funktionierte, ist die Auswahl von Local Mail Exchanger :

  • Gehe zu cPanel
  • Wählen Sie E-Mail-Routing
  • Wählen Sie Ihre Domain aus
  • Wählen Sie Local Mail Exchanger

Local Mail Exchanger ermöglicht Ihnen das Senden einer E-Mail an ein Konto derselben Domäne in GoDaddy: z. B .: eine E-Mail an [email protected]

0
edrian