MailGun : Fejl 500.

Kære v5.dk
Jeg håber i kan hjælpe mig :-)
Jeg sidder og leger med MailGun, har installeret composer og MailGun via composer lokalt.
Så har jeg uploadet det til min server på dev.scalmar.dk
Desværre modtager jeg en fejl 500 på siden, jeg har kopieret PHP koden fra deres quick guide, og synes ikke jeg finder fejlen.
Jeg har indsat min API samt sandbox domænet o.O
Går jeg via codepad.com siger den jeg har en fejl i linje 5?
Hvad gør jeg forkert ? :)
<?php
# Include the Autoloader (see "Libraries" for install instructions)
require 'vendor/autoload.php';
use Mailgun\Mailgun;
# Instantiate the client.
$mgClient = new Mailgun('key-234829a345cb46cef710829b39ad0680');
$domain = "sandboxe3bdf9dde8814a3e93c21d129d7c5382.mailgun.org";
# Make the call to the client.
$result = $mgClient->sendMessage($domain, array(
'from' => 'Excited User <[email protected]>',
'to' => 'Baz <[email protected]>',
'subject' => 'Hello',
'text' => 'Testing some Mailgun awesomness!'
));
?>
Mvh
S. Calmar
www.scalmar.dk

- Jeg havde lige problemer med surftown og deres error log. @db
Men nu fik jeg fejlen frem! - Den ser således ud :)
Fatal error: Uncaught exception 'RuntimeException' with message 'Puli Factory is not available' in
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/php-http/discovery/src/ClassDiscovery.php:32 Stack trace: #0
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/php-http/discovery/src/ClassDiscovery.php(79): Http\Discovery\ClassDiscovery::getPuliFactory() #1
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/php-http/discovery/src/ClassDiscovery.php(99): Http\Discovery\ClassDiscovery::getPuliDiscovery() #2
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/php-http/discovery/src/HttpClientDiscovery.php(21): Http\Discovery\ClassDiscovery::findOneByType('Http\\Client\\Htt...') #3
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php(270): Http\Discovery\HttpClientDiscovery::find() #4
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php(87): Mailgun\Connection\RestClient->getHttpClient() #5
/hsphere in
/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/php-http/discovery/src/ClassDiscovery.php on line 32
Mvh
S. Calmar
www.scalmar.dk

Flere henviser til https://github.com/mailgun/mailgun-php - Hvor man skal gøre brug af
$client = new \Http\Adapter\Guzzle6\Client();
$mailgun = new \Mailgun\Mailgun('api_key', $client);
Men der forstår jeg desværre ikke så meget af o.O
Mvh
S. Calmar
www.scalmar.dk

Hej @HrCalmar
Det ser ud til at Puli Factory ikke bliver brugt mere. (Forladt projekt.) Så det er derfor at du for fejlen. Mailgun bruger Puli til at sætte HTTP client. Så vidt jeg kan læse mig vej frem til.
Efter hvad jeg har kunne finde, er der to måder at løse problemet på.
- "Installer" Mailgun manuelt uden om Composer.
- Sæt HTTP client manuelt (som du også gør i din stump kode i #3)
I deres README til Mailgun GitHub siden. (PHP library.) Kan du finde et eksempel på at få Guzzle6 Adapter til at virke, på den måde du skriver der.
php composer.phar require php-http/guzzle6-adapter:^1.0
Og så burde det virke ved at bruge $client variablen:
$client = new \Http\Adapter\Guzzle6\Client();
Jeg håber at det gav mening. :-)
Redigeret af
@dhh
d. 23.04.2016 kl. 20:00 Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Modtager nu denne fejl.
Fatal error: require(): Failed opening required
'/hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/guzzlehttp/psr7/src/functions_include.php' (include_path='.:/usr/local/lsws/lsphp56/share/pear/')
in /hsphere/local/home/hb336019500/dev.scalmar.dk/vendor/composer/autoload_real.php on line 55
Min index.php ser nu sådan ud,
<?php
ini_set( "display_errors", "on" );
# Include the Autoloader (see "Libraries" for install instructions)
require 'vendor/autoload.php';
use Mailgun\Mailgun;
# Instantiate the client.
$client = new \Http\Adapter\Guzzle6\Client();
$mgClient = new \Mailgun\Mailgun('key-234829a345cb46cef710829b39ad0680', $client);
$domain = "sandboxe3bdf9dde8814a3e93c21d129d7c5382.mailgun.org";
# Make the call to the client.
$result = $mgClient->sendMessage($domain, array(
'from' => 'Excited User <[email protected]>',
'to' => 'Baz <[email protected]>',
'subject' => 'Hello',
'text' => 'Testing some Mailgun awesomness!'
));
?>
Mvh
S. Calmar
www.scalmar.dk

Er det muligt at i kan prøve at få en version til at virke, og efterfølgende zip den og lægge den op?
For jeg kæmper stadig med problemerne :O
Mvh
S. Calmar
www.scalmar.dk

Hej Simon,
Jeg kunne godt tænke mig at få adgang til dit webhotel og lige teste her. For jeg oplever ikke samme problemer herfra. Kan du evt. oprette en support-sag med oplysninger hvorpå vi kan logge ind og teste på dit webhotel? Så skal vi nok få det løst :)
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Hej @HrCalmar
Jeg har svaret din support-sag! Jeg har på dit webhotel uploadet en ny test-fil der virker under mappen "v5test".
Til andre interesserede er der sket en lille ændring i Mailgun 2.0. Jeg har opdateret siden her med de nye ændringer: https://v5.dk/php-programmering/php-send-emails-mailgun-mandrill-sendgrid-provider-composer.html
Der findes nu også en precompiled version af Mailgun 2.0 PHP-lib. inkl. tidl. omtalte test-fil, som kan downloades på ovenstående side ude til højre.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS