2016-07-15 14 views
0

Ich habe viele Lösungen in Mail-Dienste für azurblau erforscht und ich entschied, dass die beste Lösung für mich ist mit phpMailer. Ich habe bereits versucht, die sendgrid-API zu verwenden, aber ich möchte die Ajax-Post-Methode mit jquery/javascript verwenden.Wie installiere ich phpMailer auf azurblauen Web-App

Ich habe auch eine andere Lösung gefunden, die CURL beinhaltet. Aber ich bekomme einen Fehler auf

Dotenv::load(__DIR__); 

Der Fehler scheint von sendGrids eigenen PHP-Dateien zu sein.

Wie löse ich eines dieser Probleme auf azurblau.

Der Code ich benutze ist folgende:

<?php 

require 'vendor/autoload.php'; 
Dotenv::load(__DIR__); 
$sendgrid_apikey = getenv('YOUR_SENDGRID_APIKEY'); 
$sendgrid = new SendGrid($sendgrid_apikey); 
$url = 'https://api.sendgrid.com/'; 
$pass = $sendgrid_apikey; 
$template_id = '<your_template_id>'; 
$js = array(
    'sub' => array(':name' => array('Elmer')), 
    'filters' => array('templates' => array('settings' => array('enable' => 1, 'template_id' => $template_id))) 
); 

$params = array(
    'to'  => "[email protected]", 
    'toname' => "Example User", 
    'from'  => "[email protected]", 
    'fromname' => "Your Name", 
    'subject' => "PHP Test", 
    'text'  => "I'm text!", 
    'html'  => "<strong>I'm HTML!</strong>", 
    'x-smtpapi' => json_encode($js), 
); 

$request = $url.'api/mail.send.json'; 

// Generate curl request 
$session = curl_init($request); 
// Tell PHP not to use SSLv3 (instead opting for TLS) 
curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); 
curl_setopt($session, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $sendgrid_apikey)); 
// Tell curl to use HTTP POST 
curl_setopt ($session, CURLOPT_POST, true); 
// Tell curl that this is the body of the POST 
curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
// Tell curl not to return headers, but do return the response 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 

// obtain response 
$response = curl_exec($session); 
curl_close($session); 

// print everything out 
print_r($response); 

?> 

Best wishes, Stanner

+1

Sie sagen, Sie möchten PHPMailer verwenden, aber Sie verwenden es nicht? – Synchro

+0

Ja, ich möchte es benutzen. Ich bin nur verwirrt darüber, wie die Bibliothek auf azurblauen Web-App zu installieren, so habe ich eine andere Lösung geschrieben, wenn Sie wissen, warum ich den Fehler bekomme. Ich habe die phpinfo No phpmailer libary überprüft, außer ich suche nach der falschen Variable falsch. – stannersuperior

+1

PHPMailer ist eine externe Bibliothek und gehört nicht zu PHP. Sie können es von [hier] (https://github.com/PHPMailer/PHPMailer) abrufen und es zusammen mit Ihren anderen PHP-Bibliotheken und -Dateien hochladen oder (empfohlen) mit [composer] laden (https: // getcomposer.org). Basieren Sie Ihren Code auf den mitgelieferten Beispielen. – Synchro

Antwort

0

phpMailer ein Mail-Server, die die PHP-Laufzeit benötigen wird, um den SMTP-Server ermöglicht, und es erfordert das zu ermöglichen, 25 Port. Leider sind wir nicht berechtigt, dies in Azure Web Apps zu tun.

Ich empfehle Ihnen, den Mailserver des dritten Teils zu verwenden, um E-Mails von Ihren Anwendungen auf Azure Web Apps zu senden. In Azure können Sie SendGrid problemlos verwenden, um weitere Informationen zu erhalten. Weitere Informationen finden Sie unter https://azure.microsoft.com/en-us/documentation/articles/store-sendgrid-php-how-to-send-email/.