PHPMailer a externy SMTP server

mail

PHPMailer a externy SMTP server
« kdy: 30. 11. 2018, 11:18:14 »
Ahoj, prosim o radu.

1) mam funkcny mail server (postfix + dovecot)
2) chcem poslat mail z ineho stroja, kde nebezi mail (linux command), bezi tam php a python
3) ip adresa toho ineho stoja je v postfix
Kód: [Vybrat]
mynetworks
4) nasledovny kod v pythone funguje, mail sa odosle
Kód: [Vybrat]
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
server = smtplib.SMTP('MAIL_SERVER_HOSTNAME')
fromaddr = "some@email.com"
toaddr = "some@email.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Python email"
body = "Python test mail"
msg.attach(MIMEText(body, 'plain'))
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)

5) problem mam s PHPMailer
Kód: [Vybrat]
$mail = new PHPMailer(true); 
$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'MAIL_SERVER_HOSTNAME';
$mail->setFrom('some@email.com', 'test email');
$mail->addAddress('some@email.com', 'Joe User');
$mail->send();

pada to na overeni clienta.
Kód: [Vybrat]
SERVER -> CLIENT: 450 4.7.1 <CLIENT_HOST_NAME>: Helo command rejected: Host not found

je mi jasne, ze PHPMailer s mojim postfixom komunikuju ako 2 rovnocenne smtp servery a ten moj postfix si ho potrebuje overit, ci to nie je spammer a pod. Ako mam prinutit PHPMailer aby "komunikoval rovnako" ako python skript  , t.j. aby ho povazoval za bezpecneho, ked je jeho ip adresa v "mynetworks"?

dik  za pomoc


Lol Phirae

Re:PHPMailer a externy SMTP server
« Odpověď #1 kdy: 30. 11. 2018, 11:36:12 »
A co přesně je k nepochopení na "Host not found"?

mail

Re:PHPMailer a externy SMTP server
« Odpověď #2 kdy: 30. 11. 2018, 11:49:23 »
A co přesně je k nepochopení na "Host not found"?

precitaj si prosim este raz a pozorne co pisem. dakujem.

Lol Phirae

Re:PHPMailer a externy SMTP server
« Odpověď #3 kdy: 30. 11. 2018, 11:59:36 »
A co přesně je k nepochopení na "Host not found"?

precitaj si prosim este raz a pozorne co pisem. dakujem.

Prosím, přečti si eště min. dva razy tu chybovou hlášku a použij tu kouli na krku k odstranění její příčiny.

mail

Re:PHPMailer a externy SMTP server
« Odpověď #4 kdy: 30. 11. 2018, 12:08:36 »
Prosím, přečti si eště min. dva razy tu chybovou hlášku a použij tu kouli na krku k odstranění její příčiny.

pre pomalsich este raz:

1) mame 2 stroje, IP adresa prveho je 1.2.3.4, IP adresa 2. je 5.6.7.8
2) na stroji 1.2.3.4 bezi komplet mail stack
3) na stroji 5.6.7.8 bezi len python a php
4) zo stroja 1.2.3.4 sa pomocou python skriptu odosle email prostrednictvom postfixu, ktory bezi na stroji 5.6.7.8
5) zo stroja 1.2.3.4 sa pomocou PHP skriptu NEODOSLE email prostrednictvom postfixu, ktory bezi na stroji 5.6.7.8

otazka na Lol-a: Ktory "Host" je podla teba "not found"?



Lol Phirae

Re:PHPMailer a externy SMTP server
« Odpověď #5 kdy: 30. 11. 2018, 12:19:21 »
Pre najpomalších: Postfix ti říká, že tu joudovinu, co mu PHPMailer cpe v HELO/EHLO, neumí resolvovat.

PHPMailer
Kód: [Vybrat]
$mail->send()
Postfix:
Kód: [Vybrat]
220 mailserver.example.com Postfix ESMTP
PHPMailer:
EHLO hrdzavukotvudochrbta

Postfix:
Kód: [Vybrat]
host hrdzavukotvudochrbta
Host hrdzavukotvudochrbta not found: 2(SERVFAIL)
WTF?! Chod do riti...
Kód: [Vybrat]
450 4.7.1 <hrdzavukotvudochrbta>: Helo command rejected: Host not found
Řešení (v preferovaném pořadí)
0/ Přestaň posílat mailserveru neresolvovatelné kokotiny jako hrdzavukotvudochrbta
1/ Pokud si myslíš, že hrdzavukotvudochrbta by mělo jít resolvovat, tak oprav si DNS
2/ Pokud nemůžeš opravit DNS, nacpi si hrdzavukotvudochrbta do hosts souboru na mailserveru
3/ Přestaň kontrolovat hostname v EHLO/HELO fázi

V neposlední řadě: Přečti si kua nějakou dokumentaci a pochop základní principy toho, co se snažíš dělat.

 >:(

mail

Re:PHPMailer a externy SMTP server
« Odpověď #6 kdy: 30. 11. 2018, 12:31:30 »
jo, to je ono. dikes:)

python tam pere 127.0.1.1 co pri validacii postfix zahodi a validuje clienta dalej, ale PHPMailer tam pere vlastny hostname, ktory postfix nedokaze resolvnut.

Lol, miesto "inteligentnej" otazky stacilo napisat: skontroluj si, co presne posielaju oba skripty pri volani HELO/EHLO.

Lol Phirae

Re:PHPMailer a externy SMTP server
« Odpověď #7 kdy: 30. 11. 2018, 12:36:24 »
python tam pere 127.0.1.1 co pri validacii postfix zahodi

Ne, on to nezahodí. On si to resolvne na svoje hostname. Což je mimochodem špatně nakonfigurovaný Postfix, zjevné nesmysly a podvrhy v EHLO by měl odmítat.

http://www.unixwiz.net/techtips/postfix-HELO.html

mail

Re:PHPMailer a externy SMTP server
« Odpověď #8 kdy: 30. 11. 2018, 13:10:06 »
špatně nakonfigurovaný Postfix

dalo by sa s tym suhlasit, ale zaroven ma napada otazka, preco vobec existuje takato validacia, ked ju je mozne takto ochcat? resp. pri akej situacii si nepomozem s inymi pravidlami a je vyhodne pre mna pouzit prave validaciu pri HELO?

Lol-ovi sa ospravedlnujem, ale naozaj sa mi to nechce hladat v dokumentacii, ak mas vysvetlenie, napis, budem ti vdacny:)

Lol Phirae

Re:PHPMailer a externy SMTP server
« Odpověď #9 kdy: 30. 11. 2018, 13:30:33 »
preco vobec existuje takato validacia, ked ju je mozne takto ochcat? resp. pri akej situacii si nepomozem s inymi pravidlami a je vyhodne pre mna pouzit prave validaciu pri HELO?

Já ti nevím, mně ta funkce přijde výhodná proto, že evidentní dementy, co se neobtěžují ani poslat validní hostname, s naprosto minimální spotřebou dat pošlu do háje rovnou při EHLO, a nebudu plýtvat daty, časem a pracně následně kontrolovat obsah přes antispam, antivir, DNSBL a kdovíco ještě s neporovnatelně větší časovou náročností a režií.

mail

Re:PHPMailer a externy SMTP server
« Odpověď #10 kdy: 30. 11. 2018, 13:45:08 »
to znie rozumne, za tu cenu, no nekup to:)

dikes a zdar

McFly

  • *****
  • 629
    • Zobrazit profil
    • E-mail
Re:PHPMailer a externy SMTP server
« Odpověď #11 kdy: 30. 11. 2018, 18:17:53 »
V práci se občas setkávám s poštovními servery, co posílají nesmyslné HELO/EHLO. Někteří správci na přátelskou radu opravu provedou, někteří na to kašlou. Ne vždy se jedná o nedůležité servery z vidlákova, proto jsem šel do výjimek:

Kód: [Vybrat]
smtpd_helo_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 check_helo_access hash:/etc/postfix/helo_access,
 reject_unknown_helo_hostname,
 reject_invalid_helo_hostname,
 reject_non_fqdn_helo_hostname

helo_access:
Kód: [Vybrat]
dement.lan PERMIT