• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mail api / usługa do istniejącej skrzynki

+1 głos
308 wizyt
pytanie zadane 14 listopada 2023 w PHP przez kordix Gaduła (3,910 p.)
Ktoś z was może próbował podłączać jakieś API / usługę do istniejącej skrzynki email?
Głównie chodzi o to żeby pobierać przez api treści maila o określonym tytule.

Przerabiałem takie coś z gmail.api , i nawet zadziałało, tyle że primo wysyłanie maili tam stało się bardziej uciążliwe , nie można po prostu już wysyłać maili przez smtp tylko chyba można to zrobić już tylko przez api. Wczesniej można było zaznaczyć opcję 'można używać w mniej bezpiecznych aplikacjach' cos takiego. Teraz już też to wyłączyli.
Właśnie z api jest też ten problem że musi się odbyć logowanie na skrzynkę, można zapamiętać token ale ma on okreśłoną ważność, mam problem z jego odświeżaniem. No i tak czy inaczej to wymaga założenia osobnej skrzynki.

Ktoś z was może próbował coś takiego że np. powstaje moduł helpdeskowy do istniejącej skrzynki email? Podstawa to jest właśnie ściągnięcie maili które zawierają określony tekst w tytule.

1 odpowiedź

0 głosów
odpowiedź 18 listopada 2023 przez Nudzi mi się Gaduła (4,460 p.)

Klasa działa na google workspace, nie wiem jak zadziała przy gmailu ale powinno działać tak samo.

<?php

namespace App\Libraries\Google;

use Google_Service_Gmail;
use Google_Service_Gmail_Message;
use Google_Service_Gmail_ModifyMessageRequest;

class GmailClient extends GoogleApiClient
{
    public function sendMessage($to, $subject, $body, $filePath = null)
    {
        $service = new Google_Service_Gmail($this->client);
        $user = 'me';

        $boundary = uniqid(rand(), true);
        $subjectBase64 = base64_encode($subject);

        $rawMessage = "MIME-Version: 1.0\r\n";
        $rawMessage .= 'To: ' . $to . "\r\n";
        $rawMessage .= 'Subject: =?utf-8?B?' . $subjectBase64 . "?=\r\n";
        $rawMessage .= "Content-Type: multipart/mixed; boundary={$boundary}\r\n";

        $rawMessage .= "\r\n--{$boundary}\r\n";
        $rawMessage .= "Content-Type: text/html; charset=utf-8\r\n";
        $rawMessage .= "Content-Transfer-Encoding: base64\r\n\r\n";
        $rawMessage .= chunk_split(base64_encode($body), 76, "\n");

        if (!empty($filePath)) {
            $fileData = base64_encode(file_get_contents($filePath));
            $fileName = basename($filePath);
            $rawMessage .= "\r\n--{$boundary}\r\n";
            $rawMessage .= "Content-Type: application/octet-stream; name={$fileName}\r\n";
            $rawMessage .= "Content-Transfer-Encoding: base64\r\n";
            $rawMessage .= "Content-Disposition: attachment; filename={$fileName}\r\n\r\n";
            $rawMessage .= chunk_split($fileData, 76, "\n");
        }

        $rawMessage .= "\r\n--{$boundary}--";

        $rawData = rtrim(strtr(base64_encode($rawMessage), '+/', '-_'), '=');
        $message = new Google_Service_Gmail_Message();
        $message->setRaw($rawData);
        $service->users_messages->send($user, $message);
    }
}

Odświerzać token możesz w cronie i trzymać go na przykład w bazie. (chyba co godzine)

Jeżeli potrzebował byś api dla innej poczty lub reszty integracji mogę napisać. 

komentarz 4 grudnia 2023 przez kordix Gaduła (3,910 p.)
Pytanie czy korzystaliście z innych skrzynek które mają api
komentarz 5 grudnia 2023 przez Nudzi mi się Gaduła (4,460 p.)

możesz też sprawdzić zoho mail lub office 365.

w części poczt możesz użyć imap. i smtp zamiast api. efekt będzie taki sam.

Podobne pytania

+1 głos
2 odpowiedzi 1,787 wizyt
0 głosów
1 odpowiedź 299 wizyt
pytanie zadane 24 stycznia 2021 w PHP przez Dariusz2021 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 621 wizyt
pytanie zadane 26 kwietnia 2018 w PHP przez smokolisz Mądrala (6,340 p.)

93,743 zapytań

142,683 odpowiedzi

323,299 komentarzy

63,330 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...