Я хочу отправить почту с php. Я пытаюсь использовать сетку отправки. Я перешел по этой ссылке: https://github.com/sendgrid/sendgrid-phpКак отправить электронную почту, используя сетку отправки из php?
Я старался следовать каждому шагу. Я загрузил библиотеку, не используя композитор. Так добавил библиотеку в php и написал образец кода.
Но я не получаю никакого ответа или что-либо в почтальоне, пытался вернуть тело запроса, ответ попытался повторить переменные, но не получил ничего в результате.
<?php
namespace SendGrid;
//require 'vendor/autoload.php';
require("C:\Users\Siddhi\Downloads\sendgrid-php\sendgrid-php");
class SendEmail
{
private $db;
function SendEmail($database){
$this->db = $database;
}
function helloEmail()
{
$from = new Email(null, "[email protected]");
$subject = "Hello World from the SendGrid PHP Library";
$to = new Email(null, "[email protected]");
$content = new Content("text/plain", "send grid test email");
$mail = new Mail($from, $subject, $to, $content);
$to = new Email(null, "[email protected]");
$mail->personalization[0]->addTo($to);
//echo json_encode($mail, JSON_PRETTY_PRINT), "\n";
echo $to;
return $mail;
}
function sendHelloEmail()
{
$apiKey = getenv('PUT-KEY-HERE');
$sg = new SendEmail($apiKey);
$request_body = $this->helloEmail();
$response = $sg->client->mail()->send()->post($request_body);
echo $response->statusCode();
echo $response->body();
echo $response->headers();
return $request_body;
}
}
Я также попробовал второй способ, показанный в ссылке с использованием композитора. Итак, я дал путь композитора.
<?php
namespace SendGrid;
require 'C:/Program Files (x86)/Ampps/www/testslim/v1/src/vendor/autoload.php';
//require("C:/Users/Siddhi/Downloads/sendgrid-php/sendgrid-php");
class SendEmail
{
private $db;
function sendEmail($database) {
$this->db = $database;
}
function helloEmail()
{
$from = new Email(null, "[email protected]");
$subject = "Hello World from the SendGrid PHP Library";
$to = new Email(null, "[email protected]");
$content = new Content("text/plain", "send grid test email");
$mail = new Mail($from, $subject, $to, $content);
$to = new Email(null, "[email protected]");
$mail->personalization[0]->addTo($to);
//echo json_encode($mail, JSON_PRETTY_PRINT), "\n";
echo $from.$to;
return $mail;
}
function sendHelloEmail()
{
$apiKey = getenv('PUT-KEY-HERE');
$sg = new SendEmail($apiKey);
echo $apiKey;
$request_body = $this->helloEmail();
$response = $sg->client->mail()->send()->post($request_body);
echo $response->statusCode();
echo $response->body();
echo $response->headers();
return $request_body;
}
}
К этому же он не дает никакого результата, он также блокирует другие мои URL, они не давая выход.
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../vendor/autoload.php';
include '../classes/CustomerOrders.php';
include '../classes/ActivatedMerchants.php';
include '../classes/UserAuthentication.php';
include '../classes/UserActivationItem.php';
include '../classes/CustOtpConfirmation.php';
include '../classes/CustomerRegistrationItems.php';
include '../classes/DeviceToken.php';
include '../classes/SearchMerchants.php';
include '../classes/SendActivationRequest.php';
include '../classes/CustomerBills.php';
include '../classes/CustomerRegistration.php';
include '../classes/ItemsUnits.php';
include '../classes/SendEmail.php';
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set('display_errors', '1');
$config['displayErrorDetails'] = true;
$config['addContentLengthHeader'] = false;
$config['db']['host'] = "localhost";
$config['db']['user'] = "kiranadb";
$config['db']['pass'] = "[email protected]";
$config['db']['dbname'] = "kiranadb";
$app = new \Slim\App(["settings" => $config]);
$container = $app->getContainer();
$container['logger'] = function($c) {
$logger = new \Monolog\Logger('my_logger');
$file_handler = new \Monolog\Handler\StreamHandler("../logs/app.log");
$logger->pushHandler($file_handler);
return $logger;
};
$container['db'] = function ($c) {
$db = $c['settings']['db'];
$pdo = new PDO("mysql:host=" . $db['host'] . ";dbname=" . $db['dbname'],
$db['user'], $db['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
return $pdo;
};
$app->get('/getcustorders/[{orderFrom}]', function ($request, $response, $args) {
$headers = apache_request_headers();
$customerOrders=new CustomerOrders($this->db);
$result= $customerOrders->fetchOrders($args['orderFrom'],$headers['Authorization']);
return $this->response->withJson($result);
});
$app->post('/confirmCustomerOTP', function ($request, $response) {
$input = $request->getParsedBody();
$data = [];
$data['otp'] = filter_var($input['otp'], FILTER_SANITIZE_STRING);
$data['email_id'] = filter_var($input['email_id'], FILTER_SANITIZE_STRING);
// $activateUser=new CustomerRegistrationItems($data);
$custOtpConfirmation=new CustOtpConfirmation($this->db);
$result= $custOtpConfirmation->activateUserStatus($input['otp'],$input['email_id']);
return $response = $response->withJson($result);
});
$app->post('/sendCustomerOTP', function ($request, $response) {
$input = $request->getParsedBody();
$reg_data = [];
$reg_data['phone_no'] = filter_var($input['phone_no'], FILTER_SANITIZE_STRING);
$reg_data['email_id'] = filter_var($input['email_id'], FILTER_SANITIZE_STRING);
// $mobileno=new CustomerRegistrationItems($reg_data);
$custOtpConfirmation=new CustOtpConfirmation($this->db);
$result= $custOtpConfirmation->sendSms($input['phone_no'],$input['email_id']);
return $response = $response->withJson($result);
});
$app->get('/getactivatedmerchants/[{customer_id}]', function ($request, $response, $args) {
$headers = apache_request_headers();
$activatedMerchants=new ActivatedMerchants($this->db);
$result= $activatedMerchants->fetchMerchants($args['customer_id'],$headers['Authorization']);
return $this->response->withJson($result);
});
$app->post('/getSearchedMerchants', function ($request, $response, $args) {
$input = $request->getParsedBody();
$headers = apache_request_headers();
$searchMerchant = new SearchMerchants($this->db);
$result= $searchMerchant->fetchMerchants($input['customer_id'],$headers['Authorization'],$input['latitude'],$input['longitude']);
return $this->response->withJson($result);
});
$app->post('/sendMail', function ($request, $response, $args) {
$headers = apache_request_headers();
$input = $request->getParsedBody();
$sendMails=new \SendGrid\SendEmail($this->db);
$result = $sendMails->sendHelloEmail();
return $this->response->withJson($result);
});
$app->run();
Это api1.php с URL-адресом для отправки. Я использую slim framework в php.
что поделаешь неправильно ?? Пожалуйста help..Thank вы ..
Кажется, что вам нужно, чтобы включить [отчет об ошибке PHP] (http://php.net/manual/en/function.error-reporting.php) первый –
Попробуйте избавиться от вызова 'getenv()', который просто получает переменную окружения. http://php.net/manual/en/function.getenv.php –