使用SendGrid發送電子郵件

    咱們繼續來看Azure Global的一些服務,此次來看下Azure中能夠用來發郵件的服務,Azure中其實沒有明確能夠用來發郵件的服務,由於微軟原本就有O365能作這個事,可是像發送告警郵件這類的操做仍然能夠直接借用Azure中的內置功能來實現,可是若是是單獨發送郵件,好比用來作系統的通知郵箱,給用戶發一些郵件消息等,這類操做就沒辦法用Azure的服務來作了,可是Azure中其實不光提供微軟本身的服務,還有成千上萬的第三方廠商的服務可使用,今天就來介紹下Azure Global的一項第三方服務SendGrid
html


    SendGrid能夠用來當作一個普通的Mail Server來用,在Azure中使用SendGrid也很是簡單,今天就來演示下在Azure中建立SendGrid帳戶,並用Python來發郵件的操做
python


    首先第一步,來看SendGrid的建立
ide

    直接在Azure Global中搜索SendGrid,填寫一些基本的信息就能夠建立SendGrid帳號了,注意這裏的Pricing Tier,咱們選擇的是Free,Free級別能夠每月免費發送25000封郵件
3d

    1.png


    建立的過程很快,正常1分鐘以內便可,建立完成後,在overview界面,點擊manage進行SendGrid的管理,
code

    2.png



    以後便可跳轉到SendGrid的管理界面,在這裏咱們選擇右上角的Account Details,這主要是爲了查看咱們帳號的Email Address,沒有Email Address的話咱們就沒辦法發郵件
htm

    3.png



    這裏就能看到咱們本身的郵件地址了
blog

    4.png



    接下來,咱們就來看怎麼發郵件
ip

    發郵件其實SendGrid提供了多種方式,最簡單的就是經過Web API的方式,發送郵件前,首先咱們須要先獲取咱們的Key,SendGrid驗證用戶身份不是靠以前填寫的password,而是經過API的Key來判斷的ci

    因此首先須要先setup好咱們的key,選擇Web API
字符串

    5.png


    SendGrid提供針對多種語言的API,咱們這裏選擇Python,以後就來演示下怎麼用Python經過SendGrid發郵件

    6.png


    以後,咱們直接create key來建立一個密鑰

    7.png


    密鑰的形式是一長串的字符串,把字符串保存好

    8.png



    編寫Python代碼

    最後,咱們經過編寫Python代碼調用API來進行郵件的發送,首先先來安裝SendGrid的python的module

    module能夠直接經過Pip install安裝pip install sendgrid


    以後咱們經過把key存儲到系統的環境變量裏

    setx SENDGRID_API_KEY "YOUR_API_KEY"

    9.png


    存儲完成後能夠直接在PowerShell裏讀到這個key值,這樣就算完成了

    10.png


    以後就能夠編寫代碼來嘗試郵件的發送了

import os
from sendgrid import SendGridAPIClient

message = {
    'personalizations': [
        {
            'to': [
                {
                    'email': 'xxx@xxx.com'
                }
            ],
            'subject': 'Test Send Grid'
        }
    ],
    'from': {
        'email': 'azure_xxxxxs@azure.com'
    },
    'content': [
        {
            'type': 'text/html',
            'value': '<html>This is an email from sendgrid</html>'
        }
    ]
}
try:
    sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
    response = sg.send(message)
    print(response.status_code)
    print(response.body)
    print(response.headers)
except Exception as e:
    print(str(e))

    

    這裏的郵件地址替換成須要的便可

    11.png


    發送完成後,就能夠收到郵件了!整體來講仍是很簡單的,若是不是太複雜的需求,對於成功又有必定的考量,徹底能夠考慮這種方式

    12.png

相關文章
相關標籤/搜索