Send
Send Certified

Send email via Microsoft Graph

yaml
type: io.kestra.plugin.microsoft365.outlook.Send
yaml
id: send_outlook_email
namespace: company.team

tasks:
  - id: send_email
    type: io.kestra.plugin.microsoft365.outlook.Send
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    from: "sender@example.com"
    to:
      - "recipient@example.com"
    subject: "Hello from Kestra"
    body: "<h1>Hello!</h1><p>This email was sent from a Kestra workflow.</p>"
    bodyType: "Html"

yaml
id: send_detailed_email
namespace: company.team

tasks:
  - id: send_email
    type: io.kestra.plugin.microsoft365.outlook.Send
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    from: "sender@example.com"
    to:
      - "primary@example.com"
    cc:
      - "cc1@example.com"
      - "cc2@example.com"
    bcc:
      - "bcc@example.com"
    subject: "Important Notification"
    body: "This is a plain text email sent from Kestra workflow."
    bodyType: "Text"

yaml
id: send_email_with_attachment
namespace: company.team

inputs:
  - id: report_uri
    type: STRING

tasks:
  - id: send_email
    type: io.kestra.plugin.microsoft365.outlook.Send
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    from: "sender@example.com"
    to:
      - "recipient@example.com"
    subject: "Weekly report"
    body: "See attached report."
    attachments:
      - name: "report.csv"
        uri: "{{ inputs.report_uri }}"
        contentType: "text/csv"
Properties
SubTypestring
SubTypestring
SubTypestring
Defaulthttps://graph.microsoft.com/.default
Default0
Default0
Default0