Od dłuższego czasu zastanawiam się jak sensownie rozwiązać powyższy problem.
Czemu nie mogę wysyłać maili normalnie?
Na domenach skonfigurowane jest SPF, DKIM i DMARC, przez co wysyłając maile z pominięciem MTA nie są one podpisywane przez DKIM co powoduje DMARC = fail.
Zastosowanie bibliotek PHP typu SwiftMailer.
Najprostsze rozwiązanie, ale nie wszędzie można łatwo wprowadzić i dodatkowo każdy ze skryptów/cmsów trzeba odpowiednio dostosować i skonfigurować. Do tego dochodzi konfiguracja tego pod każdą domenę. Potrzebuję rozwiązania które będzie bardziej abstrakcyjne i nie będzie wymagało ingerencji w skrypty.
Obecnie mam to prawie skonfigurowane, tylko…
wysyłając maile przez phpowe mail() dostają one nagłówek smtp.mailfrom: systeuser@s1.server.cpl. Domena s1.server.cpl ma tylko skonfigurowany spf i teraz nie jestem pewny cze powinienem te maile podpisywać kluczem dla poszczególnych domen ponieważ każdy użytkownik to jedna domena, czy może wygenerować dkim dla s1.server.cpl, a może nawet dla smtp.server.cpl i nim podpisywać maile wysyłane przez php.
s1.server.cpl - jest to adres serwera webowego
smtp.server.cpl - adres serwera smtp oba działają na tym samym ip/vps
dlatego mogę skonfigurować MTA tak by pozwalał z localhosta wysyłać maile bez uwierzytelnienia.
Dlaczego biblioteka php do wysyłki maili przez SMTP jest zła?
Ponieważ chcę mieć możliwość wysyłania z serwera WWW maili o różnych zmiennych i nieistniejących adresach email - takich na które nie da się odpowiadać. Nie chce mi się dla każdej domeny tworzyć nawet głupich maili noreply bo to strata czasu, dodatkowo jeśli domena wykorzystuje dwa adresy email do wysyłki maili to dodatkowo utrudnia to konfigurację po stronie skryptu.
Nie wiem teraz w którą stronę iść, czy wymusić w OpenDKIM podpisywanie maili z systeuser@s1.server.cpl kluczem odpowiedniej domeny lub dla domeny s1.server.cpl (bo nie wiem którego klucza powinienem w takim przypadku użyć). Czy może konfigurować PHP tak by nie było informacji o tym że mail wysyłany z konta systeuser@s1.server.cpl.
W pierwszym przypadku nie wiem czy w ogóle nie powinna być to konfiguracja taka, że maile podpisuje kluczem dla domeny s1.server.cpl, a dodatkowo w wlasciwadomena.cpl załączam w jej strefie informacje o wykorzystaniu klucza z zewnętrznej domeny.
PS. Oczywiście są opcje konfiguracyjne php takie jak:
SMTP
smtp_port
sendmail_from
Lecz są one przeznaczone tylko dla Windowsa , a ja mam na serwerze linuxa.
I ostatnia rzecz, maile idą przez postfixa, ale nie są podpisywane i nie wiem jak je (jakim kluczem) powinienem je podpisywać. Liczę na czyjąś pomoc bo nie chcę tego sprawdzać metodą prób i błędów bo będzie to trwało kilka dni …