Gönderen adresi için gerçek bir alan adı nasıl yapılandırılır


11

Ben php mail()işlevini kullanarak bir e-posta göndermeye çalıştı ama bir şekilde, gerçek bir etki alanı adı gerekli şikayet başarısız oldu. Posta günlüğünde aşağıdakiler gözlenir:

sendmail 4984 r25984: from = apache, boyut = 273, sınıf = 0, nrcpts = 1, msgid = <201.r25@localhost.localdomain>, relay = apache @ localhost
sendmail 4985 r25985: ruleset = check_mail, arg1 =, relay = mydomain.com [127.0.0.1], reddet = 553 5.5.4 ... Gönderen adresi
sendmail 4984 r25984 için gerçek etki alanı adı gerekiyor : to=external@server.com, ctladdr = apache (48/48), gecikme = 00: 00:01, xdelay = 00: 00: 00, postacı = geçiş, pri = 30273, geçiş = [127.0.0.1] [127.0.0.1], dsn = 5.6.0, stat = Veri biçimi hatası
sendmail 4984 r25984: r25984: DSN: Veri formatı hatası

cron, logrotate ile ilgili bir sorun olduğunda external@server.com adresine e-posta gönderebilir. Ben php neden bunu yapamıyor emin değilim. `Sendmail.mc dosyasında varsayılan yapılandırmada aşağıdaki değişiklikleri yapmayı denedim:

MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl

Ancak, bunun bir etkisi yok gibi görünüyor. Php mail işlevindeki adresten başlık zaten ayarlanmış. SELinux'un httpd_can_sendmailetkinleştirilmesini de sağladım . Postayı teslim almak için başka ne yapmam gerekir?


Düzenlediniz, sendmail.mcsatırları localhost.localdomainve localhostanlamlı bir şeyi değiştirdiniz ve mc dosyasını derlediniz sendmail.cfmi?
fboaventura

@fboaventura, hayır, iki çizgiyi dnlönlerinden kaldırarak uncommented ettim .
Question Taşması

İstediğiniz php betiğinizin ilgili kısmını ekleyebilir misiniz mail()? Ve, sendmail.mcbu dosyanın içine derlenmiş olmalıdır, uygun yapılandırma dosyası değil sendmail.cfkullanarak m4.
fboaventura

@fboaventura, teşekkürler, derleme gereksinimi ile ilgili olarak şimdi çalıştırabildiğimi biliyorum. Cevabımı aşağıda görebilirsiniz. Yardımınız için teşekkürler :)
5:13, Soru Taşması

Yanıtlar:


10

Sanırım yeni çözdüm. Ben / etc / hosts aşağıdaki var :

127.0.0.1 www.mydomain.com test.mydomain.com
127.0.0.1 cdn.mycdn.com
127.0.0.1 localhost.localdomain localhost myserver.com

Ne gerek myserver.com satırın önüne yerleştirmek localhost.localdomainböylece sendmail e-posta göndermek için gerçek bir etki alanı kullandığını düşünecek.


3
Sen kesinlikle kendi cevap bir not olarak, genellikle ... çözümdü olduğunu kabul edebileceğini /etc/hosts, (bir "s" ile) bunun dışında: güzel bir cevap!
Levite

2

Komut dosyalarınızda e-postanızın başlıklarını yapılandırmanız gerekir From: sender@domain.com.


Maalesef, bunun zaten başlıklarda ayarlandığından bahsetmeliydim.
Question Taşması

1

Senin içinde sendmail.mceklenti:

LOCAL_CONFIG
Djmyserver.com

sendmail.cfYeniden derleyin , sendmail'i yeniden başlatın ve iyi olmalısınız


1

Benim durumumda, bir AWS örneğinde Ubuntu 16.04'te, aşağıdakilere eklemek gerekiyordu /etc/mail/sendmail.mc:

define(`confDOMAIN_NAME', `mydomainname.com')dnl

satır MAILER_DEFINITIONSsonundan önce satırın sonuna kadar ekleyin ve aynı satırı sonuna kadar ekleyin /etc/mail/submit.mc. Sonra sudo sukök izinleri yazın ve yapılandırmak için derleyin:

m4 sendmail.mc > sendmail.cf
m4 submit.mc > submit.cf

... sonra exitsudo. Son olarak, sudo service sendmail restartsendmail'i yeniden başlatmak ve bundan sonra e-postalar alan adından gönderildiği gibi görünüyordu. Diğer FEATURE veya MASQUERADE komutlarının hiçbirine veya dosyaya bir giriş gerekli değildi /etc/hosts.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.