2017-05-06 2 views

Répondre

0

Ce n'est pas la manière la plus élégante mais cela fonctionne. Je n'ai pas été capable de trouver quelque chose comme ça. donc si vous voulez télécharger les pièces jointes sur e-mail mailgun.

Obtenir les données des e-mails entrants

$request->input('sender') 

Obtenir le JSON METADATA, je le répète JSON des pièces jointes

$request->input('attachments') 

EXEMPLE MÉTADONNÉES des pièces jointes

'attachments' => '[ 
        { 
         "url": "https://se.api.mailgun.net/v3/domains/sandboxcXXXXXXXX19a57487.mailgun.org/messages/XXXXXXXXXXXXXXXXXXX=/attachments/0", 
         "content-type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
         "name": "Plan API end points XXXX.docx", 
         "size": 53185 
         } 
        ]', 

Obtenir le fichier de l'email

ÉTAPE 1. JSON décode d'abord les pièces jointes

$files = json_decode($request->input('attachments'),true); 

ÉTAPE 2. Installez API mailgun à l'aide compositeur. (https://github.com/mailgun/mailgun-php)

Étape 3. Créez une nouvelle instance de mailgun et utilisez votre clé API, pas le mot de passe.

$mg = new Mailgun('key-xxxxxxxxxxxxxxxxx'); 
    foreach ($files as $file){ 
       $fileName = $file['name']; 
       $content = $mg->getAttachment($file['url'])->http_response_body; 
} 

C'EST TOUT, vous pouvez maintenant télécharger le contenu $, mettre dans votre cloudstorage, peu importe.