mailgun, ошибка curl жрать

У меня эта ошибка возникает при попытке прикрепить файл с помощью mailgun.

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 26: couldn't open file "zzz.txt" [url] https://api.mailgun.net/v2/sandbox8df78f0cdbc646aeb2a46999a8c6def5.mailgun.org/messages' in C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php:359 Stack trace: #0 C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(292): Guzzle\Http\Curl\CurlMulti->isCurlException(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #1 C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(257): Guzzle\Http\Curl\CurlMulti->processResponse(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #2 C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(240): Guzzle\Http\Curl\CurlMulti->processMessages() #3 C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\C in C:\xampp\htdocs\tutlage\newsletter\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php on line 359

Как это исправить? Это проблема с сертификатом жужжания?

Я прикрепляю файл вот так (здесь ничего плохого) (файл доступен по php):

$mg->sendMessage($domain, array('from'    => '...',
                                'to'      => '...',
                                'subject' => '...', 
                                'text'    => '...'
                                ), array(
                                    'attachment' => array('zzz.txt')
                                )
);

person trogne    schedule 28.12.2015    source источник


Ответы (2)


Судя по всему, файл zzz.txt не может быть найден в текущем каталоге, вы должны указать его местоположение либо абсолютное, либо относительное, например, используя константу __DIR__:

$mg->sendMessage(
    $domain, 
    array(
        'from' => '...',
        'to' => '...',
        'subject' => '...', 
        'text' => '...',
    ), 
    array(
        'attachment' => array(
            __DIR__ . '/foo/bar/zzz.txt',
        ),
    ),
);

Для справки см. http://php.net/manual/en/language.constants.predefined.php.

person localheinz    schedule 31.12.2015
comment
Спасибо (обратная косая черта для окон) - person trogne; 01.01.2016

У меня это работает. Попробуйте следующий код

define('ROOTPATH', dirname(__FILE__));
$filePath = ROOTPATH.'/textfile.txt';
$result = $mgClient->sendMessage("$domain",
    array('from'    => 'from address',
        'to'      => 'to addreess',
        'subject' => 'Find Attachment',         
        'html'    => '<h2>HTML</h2>'),
    array('attachment' => array($filePath)));
person Kapil dev    schedule 27.06.2016