|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Perl) Outlook Send Email using MIME FormatSee more Outlook ExamplesThis example sends an email using MIME format via the Microsoft Graph Outlook REST API.Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://learn.microsoft.com/en-us/graph/api/user-sendmail?view=graph-rest-1.0&tabs=http#example-4-send-a-new-message-using-mime-format 
 use chilkat(); $success = 0; # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); # Use your previously obtained access token here: # See the following examples for getting an access token: # Get Microsoft Graph OAuth2 Access Token (Azure AD v2.0 Endpoint). # Get Microsoft Graph OAuth2 Access Token (Azure AD Endpoint). # Refresh Access Token (Azure AD v2.0 Endpoint). # Refresh Access Token (Azure AD Endpoint). $jsonToken = chilkat::CkJsonObject->new(); $success = $jsonToken->LoadFile("qa_data/tokens/microsoftGraph.json"); if ($success == 0) { print $jsonToken->lastErrorText() . "\r\n"; exit; } $http->put_AuthToken($jsonToken->stringOf("access_token")); # To send email, we'll POST to the following endpoint: # # POST /users/{id | userPrincipalName}/sendMail # # (The special keyword "me" may be used in place of a principal name.) # # The body of the POST request will contain the MIME source of the email in base64 format. # Create a new email object $email = chilkat::CkEmail->new(); $email->put_Subject("Test Outlook API to Send HTML Email with Attachments"); $email->put_From('Mary <mary@somewhere.com>'); $email->AddTo("Joe",'joe@example.com'); # Add a plain-text alternative body, which will likely never be seen. # (It is shown if the receiving email client is incapable of displaying HTML email.) $email->AddPlainTextAlternativeBody("This is a plain-text alternative body..."); # Our HTML will include an image, so add the related image here. $contentIdStarfish = $email->addRelatedFile("qa_data/jpg/starfish.jpg"); if ($email->get_LastMethodSuccess() == 0) { print $email->lastErrorText() . "\r\n"; exit; } # The src attribute for the image tag is set to the contentIdStarfish: $sbHtml = chilkat::CkStringBuilder->new(); $sbHtml->Append("<html><body><p>This is an HTML email with an embedded image.</p>"); $sbHtml->Append("<p><img src=\"cid:CONTENT_ID_STARFISH\" /></p></body></html>"); $numReplacements = $sbHtml->Replace("CONTENT_ID_STARFISH",$contentIdStarfish); $email->AddHtmlAlternativeBody($sbHtml->getAsString()); # Finally, add some attachments to the email. # Add a file attachment. $success = $email->AddFileAttachment2("qa_data/pdf/fishing.pdf","application/pdf"); if ($success == 0) { print $email->lastErrorText() . "\r\n"; exit; } # Add an attachment where the content is contained in a string. $content = "This is the content of the 2nd attached file."; $email->AddStringAttachment("someText.txt",$content); # Get the email as multi-line base64.. $bdMime = chilkat::CkBinData->new(); $email->GetMimeBd($bdMime); # Now get it as multi-line base64 $sbBase64 = chilkat::CkStringBuilder->new(); $bdMime->GetEncodedSb("base64_mime",$sbBase64); # Send the HTTP POST (i.e. send the email) $resp = chilkat::CkHttpResponse->new(); $success = $http->HttpSb("POST","https://graph.microsoft.com/v1.0/me/sendMail",$sbBase64,"utf-8","text/plain",$resp); if ($success == 0) { print $http->lastErrorText() . "\r\n"; exit; } # The send succeeded if the response status code = 202. # In the success case, there is no response body. (We just get the response code to know that it succeeded.) if ($resp->get_StatusCode() != 202) { $json = chilkat::CkJsonObject->new(); $json->Load($resp->bodyStr()); $json->put_EmitCompact(0); print $json->emit() . "\r\n"; print "Failed, response status code = " . $resp->get_StatusCode() . "\r\n"; } else { print "Outlook Mail Sent." . "\r\n"; } | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.