Я отправляю контактную форму ответа через PHP, соответственно PHPmailer. Отправлено с VPS с Debian & ISPConfig & Apache установлен. Письмо отправлено нормально, Gmail получает его без проблем. Однако, когда я открываю «оригинальный почтовый код», появляется неправильный адрес отправителя:
Return-Path: <[email protected]>
в результате в SPF уведомление:
google.com: [email protected] does not designate permitted sender hosts
Это, конечно, заставляет некоторых других провайдеров электронной почты не получать это письмо.
Я просмотрел php.ini и некоторые другие конфиги, но не смог найти, где бы это установить.
Можно ли изменить это через PHPmailer (лучший вариант)? (или хотя бы в каком-то PHP-смысле?)
Или я должен установить его где-нибудь на стороне серверной опции — если так — где?
РЕДАКТИРОВАТЬ:
Мне удалось изменить сам адрес через $mail->Sender = [email protected];
но это все равно не обозначает
Предыдущий РЕДАКТИРОВАТЬ решает проблему с почтовыми провайдерами, не получающими электронные письма — теперь это происходит без проблем, однако я все еще хотел бы решить, где правильно установить SPF, чтобы я мог решить проблема обозначения.
Web1 @ server1 выглядит как что-то из ISP Config для пользователя по умолчанию.
Пытаться:
. $ Заголовки = «Return-Path: [email protected] \ г \ п»;
в вашем php … необходимость быть все больше и меньше знаков вокруг почтового адреса … но я не могу заставить их отображать здесь.
Хорошее было бы проверить Руководство по настройке ISP … Я определенно уверен, что вы не первый, кто использует эту панель и имеет эту проблему. Менять или добавлять в php.ini не рекомендуется, так как это изменит его для ВСЕХ пользователей.
«… не обозначает разрешенных хостов отправителя»
Обратите внимание, что Это не ошибка. Это просто констатация факта, и она мало повлияет на вашу результативность. Наличие записи SPF может улучшить вашу доставляемость, но отсутствие не ухудшит ее.
Вы не можете изменить свой SPF с PHPMailer. Он должен идти на вашем DNS-сервере.
Чтобы проверить, что находится в вашем DNS, установите dnsutils
пакет, который должен включать в себя dig
полезность. Затем вы можете посмотреть записи DNS следующим образом:
dig txt google.com
; <<>> DiG 9.9.5-3-Ubuntu <<>> txt google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58518
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com. IN TXT
;; ANSWER SECTION:
google.com. 3427 IN TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
;; AUTHORITY SECTION:
google.com. 154413 IN NS ns2.google.com.
google.com. 154413 IN NS ns4.google.com.
google.com. 154413 IN NS ns3.google.com.
google.com. 154413 IN NS ns1.google.com.
;; ADDITIONAL SECTION:
ns1.google.com. 154332 IN A 216.239.32.10
ns2.google.com. 154332 IN A 216.239.34.10
ns3.google.com. 154332 IN A 216.239.36.10
ns4.google.com. 154332 IN A 216.239.38.10
;; Query time: 19 msec
;; SERVER: 217.70.184.225#53(217.70.184.225)
;; WHEN: Thu Nov 20 14:52:33 CET 2014
;; MSG SIZE rcvd: 263
Там вы можете посмотреть записи TXT для google.com, и это даст вам их SPF (что на самом деле немного неоптимально, так как ip4
пункты должны предшествовать include
).
Вы должны добавить запись SPF в зону DNS домена server1.example.com.
Что-то вроде «v = spf1 a mx a: server1.example.com ~ all»
Eсть добрый волшебник от Microsoft, которая помогает построить запись SPF.
Боюсь, что PHP не может вам здесь помочь.