简体   繁体   中英

How to properly send email with sendgrid via php

I have the code below which is from sendgrid for sending an email with my API key but I cannot get it to work as it displays

error Fatal error: Uncaught Error: Call to a member function send() on string in ...

I have install composer as required

It seems, However, $sendgrid->send($email) doesn't actually return anything, so $mail is an empty variable. Any idea on how to resolve this.

Api link source .

<?php

// https://sendgrid.com/docs/API_Reference/index.html

// using SendGrid's PHP Library
// https://github.com/sendgrid/sendgrid-php
require 'vendor/autoload.php'; // If you're using Composer (recommended)
// Comment out the above line if not using Composer
// require("./sendgrid-php.php");
// If not using Composer, uncomment the above line

$email = new \SendGrid\Mail\Mail();
$email->setFrom("test@example.com", "Example User");
$email->setSubject("Sending with SendGrid is Fun");
$email->addTo("test@example.com", "Example User");
$email->addContent(
    "text/plain", "and easy to do anywhere, even with PHP"
);
$email->addContent(
    "text/html", "<strong>and easy to do anywhere, even with PHP</strong>"
);
//$sendgrid = new \SendGrid(getenv('my api goes here'));
$sendgrid = 'my api goes here';
try {
    $response = $sendgrid->send($email);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

You are trying to call a function on a string.

$sendgrid = 'my api goes here';

And later:

$response = $sendgrid->send($email);

What I think you meant:

$response = $email->send($email);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM