Estoy trabajando en un proyecto en el que necesito enviar correos electrónicos transaccionales a mis clientes.
Aparece el siguiente error al enviar la solicitud. Yo uso SendinBlue V3 SDK.
Exception when calling TransactionalEmailsApi->sendTransacEmail: Connection refused for URI https://api.sendinblue.com/v3/smtp/emailMi código de método:
$config = Configuration::getDefaultConfiguration()->setApiKey('api-key', 'secret'); $apiInstance = new TransactionalEmailsApi( new GuzzleHttp\Client([ 'base_uri' => 'https://[secret].online' ]), $config ); $sendSmtpEmail = new SendSmtpEmail(); $sendSmtpEmail['to'] = [ [ 'email' => $parameters['mail'], 'name' => $parameters['user'], ] ]; $sendSmtpEmail['templateId'] = 3; $sendSmtpEmail['params'] = [ 'FIRSTNAME' => $parameters['user'], 'LASTNAME' => $parameters['verification_code'], ]; try { $result = $apiInstance->sendTransacEmail($sendSmtpEmail); print_r($result); } catch (ConnectException $e) { echo 'Exception when calling TransactionalEmailsApi->sendTransacEmail: ', $e->getMessage(), PHP_EOL; }¿Configuraste correctamente tu cliente https con Guzzle? Si no se conecta, puede verificar si se lanzan otras excepciones. Tienes un gran inventario de ellos en la documentación de Guzzle:https://docs.guzzlephp.org/en/stable/quickstart.html#exceptions
. \RuntimeException └── TransferException (implements GuzzleException) ├── ConnectException (implements NetworkExceptionInterface) └── RequestException ├── BadResponseException │ ├── ServerException │ └── ClientException └── TooManyRedirectsException En su caso, es una ConnectException . Trate de obtener más información al respecto.
¿Por qué se lanzan ConnectException por lo general? Cuando no puedes conectarte.
¿Cuándo no puedes conectarte? Cuando no está utilizando la URL de punto final correcta, no ha configurado su cliente HTTP para usar el protocolo HTTPS, no usa el punto final de acuerdo con sus especificaciones que encontrará dentro de la documentación oficial.
También puede consultar el tutorial oficial: https://developers.sendinblue.com/docs/send-a-transactional-email
También puede usar el repositorio oficial de github.com sendinblue con la API de php bien descrita: https://github.com/sendinblue/APIv3-php-library
El documento dice: Se ha denegado el acceso de retransmisión Es posible que la autenticación haya fallado: verifique su clave API,
Asegúrese también de que su puerto 587 esté abierto.
ejecutar php artisan cache:clear y php artisan config:clear