Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Chilkat2-Python) Outlook Send Email using MIME FormatSee more Outlook ExamplesThis example sends an email using MIME format via the Microsoft Graph Outlook REST API. 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
import sys import chilkat2 # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. http = chilkat2.Http() # 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 = chilkat2.JsonObject() success = jsonToken.LoadFile("qa_data/tokens/microsoftGraph.json") if (success == False): print(jsonToken.LastErrorText) sys.exit() http.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 = chilkat2.Email() email.Subject = "Test Outlook API to Send HTML Email with Attachments" email.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.LastMethodSuccess != True): print(email.LastErrorText) sys.exit() # The src attribute for the image tag is set to the contentIdStarfish: sbHtml = chilkat2.StringBuilder() 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 != True): print(email.LastErrorText) sys.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 = chilkat2.BinData() email.GetMimeBd(bdMime) # Now get it as multi-line base64 sbBase64 = chilkat2.StringBuilder() bdMime.GetEncodedSb("base64_mime",sbBase64) # Send the HTTP POST (i.e. send the email) # resp is a CkHttpResponse resp = http.PTextSb("POST","https://graph.microsoft.com/v1.0/me/sendMail",sbBase64,"utf-8","text/plain",False,False) if (http.LastMethodSuccess != True): print(http.LastErrorText) sys.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.StatusCode != 202): json = chilkat2.JsonObject() json.Load(resp.BodyStr) json.EmitCompact = False print(json.Emit()) print("Failed, response status code = " + str(resp.StatusCode)) else: print("Outlook Mail Sent.") |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.