Fórum Root.cz

Hlavní témata => Server => Téma založeno: mail 30. 11. 2018, 11:18:14

Název: PHPMailer a externy SMTP server
Přispěvatel: mail 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
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: Lol Phirae 30. 11. 2018, 11:36:12
A co přesně je k nepochopení na "Host not found"?
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: mail 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.
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: Lol Phirae 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.
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: mail 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"?

Název: Re:PHPMailer a externy SMTP server
Přispěvatel: Lol Phirae 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.

 >:(
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: mail 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.
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: Lol Phirae 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
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: mail 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:)
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: Lol Phirae 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í.
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: mail 30. 11. 2018, 13:45:08
to znie rozumne, za tu cenu, no nekup to:)

dikes a zdar
Název: Re:PHPMailer a externy SMTP server
Přispěvatel: McFly 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