<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          五分鐘快速搭建Serverless免費郵件服務

          共 2371字,需瀏覽 5分鐘

           ·

          2020-07-28 16:38

          1. 引言

          本文將帶你快速基于 Azure Function 和 SendGrid 構建一個免費的Serverless(無服務器)的郵件發(fā)送服務,讓你感受下Serverless的強大之處。

          該服務可以每月免費發(fā)送2,5000封,這是完全白嫖啊,感興趣的,趕緊動起你的小手爪,噼里啪啦搞起來呀。

          2. 創(chuàng)建 SendGrid 賬號

          你要有一個Azure賬號,沒有的話,花幾分鐘自行注冊一個就好。(我的賬號注冊在香港區(qū)域)咱們先來創(chuàng)建一個SendGrid Accounts,如下圖所示。點擊SendGrid Accounts后,再點擊創(chuàng)建SendGrid account。

          填寫完畢后,點擊Review+Create,稍等片刻,提示部署成功,那么恭喜你,可以接著往下玩耍了。如果部署失敗,可能會因為SendGrid屏蔽了某些區(qū)域的賬號創(chuàng)建,就只能重新注冊個Azure賬號玩耍了。

          緊接著,前往剛剛創(chuàng)建的SendGrid Account,點擊Manage會跳轉至SendGrid管理面板。打開后,會要求你進去郵件驗證,自行前往郵箱驗證即可。

          點擊API Keys,然后點擊Create API Key,填寫API Key Name,選擇 Full Access,點擊Create&View,記下生成的API Key,后面需要用到。

          3. 創(chuàng)建第一個函數應用

          回到Azure控制臺,然后搜索函數應用打開后點擊添加,按以下圖示進行創(chuàng)建。其中務必選擇以代碼發(fā)布,承載的操作系統選擇Windows。

          創(chuàng)建成功后,轉到資源,如下圖所示:

          依次點擊函數,添加,選擇HTTP trigger模板,填寫函數名稱,然后指定身份驗證級別。

          點擊創(chuàng)建,創(chuàng)建成功后,跳轉到函數頁面,點擊獲取函數URL,粘貼URL到瀏覽器就可以訪問到你創(chuàng)建的第一個函數應用。

          點擊代碼+測試,就可以看到模板代碼,如下圖所示:

          從截圖來看,這個和C#的語法并無太大差別,官方稱為C#腳本。緊接著替換 run.csx為以下代碼并點擊保存:

          1. //run.csx

          2. #r "Newtonsoft.Json"

          3. #r "SendGrid"


          4. using System.Net;

          5. using Microsoft.Azure.WebJobs.Host;

          6. using SendGrid.Helpers.Mail;

          7. using Microsoft.Extensions.Primitives;

          8. using Newtonsoft.Json;


          9. public static SendGridMessage Run(Email req, ILogger log)

          10. {

          11. var reqStr = JsonConvert.SerializeObject(req);

          12. log.LogInformation(reqStr);


          13. var message = new SendGridMessage();

          14. message.AddTo(req.To);

          15. message.AddContent("text/html", req.Body);

          16. message.SetFrom(new EmailAddress(req.From));

          17. message.SetSubject(req.Subject);

          18. return message;

          19. }


          20. public class Email

          21. {

          22. public string To { get; set; }

          23. public string From { get; set; }

          24. public string Subject { get; set; }

          25. public string Body { get; set; }

          26. }

          然后修改 function.json中的配置如下,并保存。

          1. {

          2. "bindings": [

          3. {

          4. "authLevel": "function",

          5. "name": "req",

          6. "type": "httpTrigger",

          7. "direction": "in",

          8. "methods": [

          9. "get",

          10. "post"

          11. ]

          12. },

          13. {

          14. "type": "sendGrid",

          15. "name": "$return",

          16. "direction": "out",

          17. "apiKey": "SendGridAPIKeyAsAppSetting"

          18. }

          19. ]

          20. }

          注意觀察配置項中需要指定 apiKey,就是我們上面創(chuàng)建SendGrid Account 中對應的ApiKey。回到上面創(chuàng)建的Azure Function 應用服務,然后按下圖添加上面發(fā)郵件函數需要的配置項,如下所示。

          添加完畢后,再回到函數中就可以測試運行了,如下圖所示:

          查收郵件,你將收到來自Azure Function & SendGrid 的免費問候。

          當然,也可以通過Postman自行驗證:

          4.最后

          通過以上的連環(huán)操作,相信你不僅成功薅了一把微軟的羊毛,而且順帶對Serverless也有了一定的認知。如果對Azure Function感興趣的,不妨參考[官方文檔:https://docs.microsoft.com/en-us/azure/azure-functions/]研究一番,相信你會發(fā)掘不少玩法,順便再薅它幾把羊毛,哈哈哈!


          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久綜合很很很 | 亚洲色激情| 熟女性爱网 | 欧美色图一区在线视频 | 亚洲精品国偷拍自产在线观看蜜臀 |