Я работаю с Office365 REST API.У меня проблема с отправкой электронной почты.Я не могу найти никакой помощи в основном php.
Я могу получить доступ к почте и вложениям, но не могу отправить письмо.Вот что я пробовал до сих пор.
// SEND MAIL FUNCTION
if(isset($_GET['send_email'])){
$resuu = "okay";
$resuu = SendMail();
echo $resuu;
}
function SendMail(){
$userID = get_user_id();
$headers = array(
"User-Agent: php-tutorial/1.0",
"Authorization: Bearer ".token()->access_token,
"Accept: application/json",
"client-request-id: ".makeGuid(),
"return-client-request-id: true",
"X-AnchorMailbox: ". get_user_email()
);
$newmail = '{
"Message": {
"Subject": "Sending 1st email dont fails plz?",
"Body": {
"ContentType": "Text",
"Content": "The new cafeteria is open."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "chxanu123@gmail.com"
}
}
]
},
"SaveToSentItems": "true"
}';
$outlookApiUrl = $_SESSION["api_url"] . "/Users('$userID')/sendmail";
$response = runCurl($outlookApiUrl, $newmail, $headers);
return $response;
//Session[api_url] contains $_SESSION["api_url"] = //"https://outlook.office.com/api/v2.0";
}
?>
Вот метод запуска curl, который я использовал для доступа к почте
<code>function runCurl($url, $post = null, $headers = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $post == null ? 0 : 1);
if($post != null) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
if($headers != null) {
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http_code >= 400) {
echo "Error executing request to Office365 api with error
code=$http_code<br/><br/>\n\n";
//echo "<pre>"; print_r($response); echo "
"; die ();} return $ response;}