У меня эта ошибка возникает при попытке прикрепить файл с помощью 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')
                                )
);
0
trogne 28 Дек 2015 в 19:49

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.

1
localheinz 31 Дек 2015 в 17:03

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

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)));
0
Andrii Krupka 27 Июн 2016 в 08:22