Egy ügyfelünk office365 e-mail fiókját kellene PHP-val elérnem. Az imap_open() paranccsal eddig más fiókokat el tudtam eddig érni, de ezt az office365 fiókot nem sikerül. A fiók vállalati, így tartozik hozzá egy rendszergazda, aki nem tudta biztosan megmondani, hogy outlook.office.com vagy outlook.office365.com a szerver, amihez csatlakozni kell, így próbálkozom mindkettővel. Állítása szerint a korlátozásokat levette, sőt a powershelljében nem is lát sikertelen csatlakozási kísérleteket, míg PHP oldalról csak hibás csatlakozások történtek. A hibaüzenet: "LOGIN failed.". Bár már sikerült elérnem, hogy ezek után adjon még egy másik hibaüzenetet is: "Too many login failures". A rendszergazda nem tudja törölni a próbálkozási kísérletek limitjét, mert nem is lát hibás csatlakozást. Talán azért nem lát, mert én más szerverhez csatlakozom, mint kellene?
A e-mail címmel és jelszóval az outlook webes felületére gond nélkül be lehet lépni.
Az AI még tanácsolta, hogy a rendszergazda generáltasson alkalmazásjelszót a fiók jelszava helyett, de erre azt a választ kaptam, hogy ebben az esetben ez nem fog menni. (Talán, mert nincs 2FA a fiókon?)
Csak remélni tudom, hogy nem én vagyok az egyetlen, akinek PHP-val kellene egy felhős outlook fiókot elérni, és valaki tud tanácsot adni, hogyan próbáljam meg, netán van konkrét csatlakozási kódja, ami nála működik is. Mindenképp jó lenne tudni egy biztos szervernevet, amihez csatlakoznom kell.
- 657 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
Esetleg megpróbálni a fiókot először beállítani egy olyan klienssel (talán Thunderbird), ami támogatja az O365-öt? És utána megnézni, milyen szerverhez melyik porton, milyen titkosítási beállítások mellett működik és azokat használni PHP-ban. Így talán kiderül, hogy kiszolgáló oldalon vagy PHP felől van gond, működik-e egyáltalán a külsős IMAP elérés.
- A hozzászóláshoz be kell jelentkezni
Szerintem imap_open-el sehogy, mert ha jól rémlik nem tud oauth-ot. :)
Az MS meg kivezette a simát: :)
Most protocols (Exchange ActiveSync, POP, IMAP, Remote PowerShell, EWS): Basic authentication was largely disabled for these protocols in Exchange Online by October 1, 2022. Microsoft began permanently disabling Basic Auth in all tenants, regardless of usage, around that time.
- A hozzászóláshoz be kell jelentkezni
Azaz: mindenképpen kell alkalmazásjelszót (app password) generálni, ez helyettesíti az OAuth authentikációs workflow-t. Ez az OAuth viszonylatában egy client secret-nek felel meg, csak mivel az IMAP egy egyetlen kapcsolaton belül zajló stateful protokoll, így nincs szükség a különböző tokenek csereberéjére.
PHP oldalról ez lényegében azt jelenti, hogy neked a felhasználó nevével és az alkalmazásjelszóval kell becsatlakoznod. Meg az auth type is más lessz itt ahogy lentebb írják - de az alkalmazásjelszó fog kelleni, nem a felhasználó saját jelszava! Amennyiben nincs alkalmazásjelszó generálására lehetőség, úgy ezt a fiókot semmilyen más módszerrel nem tudod elérni IMAP-on át.
Amit esetleg meg tudhatsz tenni, hogy az Outlook REST API-ján keresztül éred el a leveleket. Sosem próbáltam még, de majdnem biztos vagyok benne, hogy egyebek mellett PHP-hoz is van hozzá library. Igen, tudom, hogy nem ez volt a kérdés és nem is optimális... de sajnos ebben a 2 faktorral-OAuth-tal megvert világban nem sok más lehetőség adódik. És ebben az esetben meg kell tudnod személyesíteni a felhasználót, azaz ismerned kell a jelszavát + az esetlegesen bekonfigurált 2 faktoros hitelesítést is meg kell tudni lépni. Ez biztonsági kockázatot jelent a partnercégnek.
Fogalmam sincs, mi az üzleti igény, azaz mi az amit ténylegesen meg szeretnél valósítani, ennek megfelelően konkrétabb megoldási javaslatot se tudok adni.
- A hozzászóláshoz be kell jelentkezni
Szerintem már csak OAuth2-verl működik a csatlakozás, sima IMAP jelszavas hitelesítés már nincs.
1904.04.08.
RIP Jákub.
neut @
- A hozzászóláshoz be kell jelentkezni
Úgy tűnik, ennek segítségével sikerült, nagyon köszönöm!
Az AI szerint a mezei imap_open is felparaméterezhető az access_token ismeretében úgy, hogy megnyissa, de egyelőre ezt még nem sikerült elérnem, az office szervere az "invalid remote specification" hibaüzenettel visszadobja.
- A hozzászóláshoz be kell jelentkezni
Továbbá az elég fura, hogy levelet küldeni oauth2 nélkül is lehet, míg fogadni csak azzal.
- A hozzászóláshoz be kell jelentkezni
2025. szeptemberig?
- A hozzászóláshoz be kell jelentkezni
Hűűű, de ismerős szitu, csak épp a másik oldalról :D. Csak nem tán a "pénzügyi bizonylat - elektromechanikai szerkezet" egy embere volnál? :D
Színes vászon, színes vászon, fúj!
Kérem a Fiátot..
- A hozzászóláshoz be kell jelentkezni