آن را مانند داغ رها کنید: ارسال پیوست های ایمیل مستقیم به Google Drive با استفاده از postmark
این یک ارسال برای Challenge Postmark است: مبتکران صندوق ورودی.
آنچه من ساختم
معلمان ، فریلنسرها ، و صندوق ورودی صفر صفر خوشحال می شوند: من ایمیل ایجاد کردم ، یک استقرار یک کلیک AWS که ایمیل های دریافتی را به آپلودهای اتوماتیک Google Drive تبدیل می کند. با استفاده از وب های جدید ورودی Postmark ، AWS Lambda و یک جادوگر کوچک OAUTH ، پیوست ها مستقیماً از صندوق ورودی شما به سمت Google Drive خود پرواز می کنند. در این پست ، من چگونه آن را با استفاده از Postmark ، CloudFormation ، Google Drive و ابزارهای بدون سرور ساخته ام و چگونه می توانید آن را با کد دستی صفر مستقر کنید.
چرا از ایمیل استفاده می کنید؟
- با یک کلیک مستقر می شود ، هیچ کد نویسی لازم نیست (نسخه ی نمایشی زیر را ببینید و در عرض چند دقیقه مستقر شوید!)
- از دانش آموزان خود بخواهید تکالیف خود را مستقیماً به Google Drive خود ارسال کنند و بدون نیاز به ارائه آدرس ایمیل واقعی خود
- اسناد را از همکاران ، کارمندان یا مشتریان پردازش کنید بدون اینکه نیاز به بارگیری دستی داشته باشید و آنها را برای ویرایش و ذخیره بارگذاری کنید
- یک پوشه عکس برای رویدادهای ویژه مانند عروسی ، تولد و موارد دیگر تنظیم کنید!
نسخه آزمایشی
emaildrop یک پشته CloudFormation با برخی از کد های پایتون است که صندوق ورودی ایمیل شما را ساده می کند. با این حال ، اول ، ما باید اطلاعاتی را از Google جمع آوری کنیم. سپس ، ما روی یک دکمه Launch Stack که تمام زیرساخت ها را مستقر می کند ، کلیک خواهیم کرد- بدون کدگذاری مورد نیاز. سپس Postmark را پیکربندی می کنیم و می پیچیم. بیا بریم!
به کنسول Google Cloud بروید
ایجاد یک پروژه
- روی پروژه Dropdown → پروژه جدید کلیک کنید
- نام آن را (به عنوان مثال ، postmarkuploader)
- روی ایجاد کلیک کنید
API Google Drive را فعال کنید
- رفتن به API و خدمات → کتابخانه
- API Google Drive را جستجو کنید
- روی فعال کردن کلیک کنید
صفحه رضایت OAUTH را پیکربندی کنید
- رفتن به API و خدمات → صفحه رضایت OAUTH
- خارجی را انتخاب کنید
- پر کردن:
- نام برنامه
- ایمیل پشتیبانی
- ایمیل تماس با توسعه دهنده (همه اینها می توانند ایمیل شخصی شما باشند)
- خود را به عنوان کاربر آزمایشی با استفاده از آن اضافه کنید مخاطبان صفحه در نوار کناری
- روی ذخیره و ادامه کلیک کنید
اعتبار OAUTH 2.0 را ایجاد کنید
- رفتن به API و خدمات → اعتبار
- کلیک کردن اعتبار ایجاد کنید → شناسه مشتری OAUTH
- برنامه وب را انتخاب کنید
- اکنون از URI تغییر مسیر استفاده کنید – پس از استقرار پشته ، آن را اضافه خواهید کرد
- روی ایجاد کلیک کنید
- شناسه مشتری و راز مشتری را ذخیره کنید
پشته CloudFormation را مستقر کنید
- روی دکمه “راه اندازی پشته” در بالا کلیک کنید!
- هر چیزی را که می خواهید پشته کنید.
- پارامترها را پر کنید:
- وابسته به گوگل سلولی: (از مرحله 5)
- googleclicientsecret: (از مرحله 5)
- Google Driverfolder: (اختیاری) نام پوشه برای ذخیره پیوست ها
- زن برهنه: (اختیاری) پیش فرض 60 ثانیه است. افزایش برای پیوست های بزرگ (حداکثر 900)
– موافقت کنید که اجازه دهید AWS منابع جدید IAM ایجاد کند و روی “ایجاد پشته” کلیک کند. ایمیل برای استقرار چند دقیقه طول خواهد کشید.
URI تغییر مسیر را اضافه کنید
- پس از استقرار پشته ، به برگه Outputs در CloudFormation بروید
- خروجی Oauthurl را کپی کنید
- بازگشت به Google Cloud Console → مشتریان
- روی مشتری OAUTH 2.0 خود کلیک کنید
- URIS تغییر مسیر مجاز را ویرایش کنید
- در URL که از خروجی پشته کپی کرده اید ، خمیر کنید
- تغییرات را ذخیره کنید
جریان OAUTH را کامل کنید
- در خروجی های پشته ، oauthurl را پیدا کنید
- آن را در مرورگر خود باز کنید
- برای شروع جریان تأیید اعتبار ، همانطور که در بالا نشان داده شده است ، روی پیوند کلیک کنید.
- هشدار می دهید که گوگل این برنامه را تأیید نکرده است. روی “ادامه” کلیک کنید
- تأیید دسترسی به Google Drive
- لامبدا کد را برای نشانه ها مبادله کرده و آنها را ذخیره می کند
- اکنون می توانید این صفحه را ببندید ، احراز هویت به پایان رسیده است!
یک حساب کاربری ارسال کنید
پردازش ایمیل ورودی را تنظیم کنید
– در داشبورد postmark خود ، حرکت کنید سرور → نام سرور شما → جریان ورودی پیش فرض
– حرکت به دستورالعمل راه اندازی
– به آدرس ایمیل منحصر به فرد خود توجه کنید
URL Webhook را پیکربندی کنید
– از تنظیمات صفحه ، پیدا کردن URL Webhook مزرعه
– در خروجی های پشته CloudFormation ، پیدا کنید رفیق ارزش
– این URL را کپی کرده و آن را در قسمت URL Webhook Postmark Postmark قرار دهید
– جعبه ای را که بارگیری JSON را به عملکرد Lambda شما ارسال می کند ، بررسی کنید. ایمیل این json را برای استخراج پیوست ها تجزیه می کند.
– تغییرات خود را ذخیره کنید
ادغام را امتحان کنید
– ایمیل با پیوست به آدرس ایمیل ورودی خود ارسال کنید
– پیوست ها باید به طور خودکار در پوشه Google Drive شما بارگذاری شوند
– اگر با هر مشکلی روبرو شدید ، سیاهههای مربوط به Lambda را در CloudWatch بررسی کنید
مخزن کد
به طور خودکار پیوست ها را به ایمیل های ارسال شده به آدرس ایمیل ورودی خود در Google Drive بارگذاری کنید
این برنامه به طور خودکار پیوست های ایمیل را از Postmark به Google Drive بارگذاری می کند. هنگامی که ایمیل به آدرس ایمیل ورودی شما ارسال می شود ، هر پیوست به طور خودکار در پوشه مشخص شده Google Drive شما ذخیره می شود. این سیستم از AWS Lambda ، API Gateway و Secrets Manager برای رسیدگی به آپلودهای جریان OAuth و پرونده استفاده می کند.
معماری
- دفتر پست: ایمیل دریافت می کند و داده های پیوست را از طریق وب سایت های وب ارسال می کند
- دروازه API: نقاط پایانی برای پاسخ به تماس OAUTH و Webhook Postmark را فراهم می کند
- توابع لامبدا: آپلودهای جریان و پیوست OAUTH را کنترل کنید
- مدیر اسرار: ایمن نشانه های تازه کردن OAuth را ذخیره می کند
- Google Drive API: مقصد پیوست های ایمیل
دستورالعمل راه اندازی
1. Google Drive API Setup
1.1 به کنسول Google Cloud بروید
1.2 یک پروژه ایجاد کنید
- روی پروژه Dropdown → پروژه جدید کلیک کنید
- نام آن را (به عنوان مثال ، postmarkuploader)
- روی ایجاد کلیک کنید
1.3 API Google Drive را فعال کنید
- رفتن به API و خدمات → کتابخانه
- جستجو کنید …
چگونه من آن را ساختم
این پروژه به عنوان یک ایده ساده آغاز شد: من می خواستم پیوست ها را از طریق ایمیل استخراج کنم و آنها را به طور خودکار به Google Drive ارسال کنم. درایو این ویژگی را به صورت بومی ارائه نمی دهد. وب های ورودی پستی Postmark با روشی تمیز و قابل اعتماد برای دریافت داده های ایمیل ساختاری ، از جمله پیوست های رمزگذاری شده Base64 ، از طریق بار JSON ، این امکان را فراهم کردند.
من از AWS CloudFormation استفاده کردم تا کل راه حل بدون سرور را در یک کلیک مستقر کنم. مقررات پشته:
- یک Lambda Exchange Oauth Token: جریان OAUTH 2.0 را با Google انجام می دهد و یک کد مجوز برای نشانه ها را مبادله می کند. این یک پیوند Google OAuth را از طریق CloudFormation وارد می کند تا کاربران بتوانند به راحتی دسترسی پیدا کنند.
- Lambda بارگذاری: توسط وب سایت ورودی پستی ساخته شده است. این پیوست ها را رمزگشایی می کند و آنها را با استفاده از API درایو در Google Drive کاربر تأیید شده بارگذاری می کند.
- یک دروازه API: هدایت Google Oauth را به عملکرد Lambda Exchange Token هدایت می کند.
در اینجا نحوه عملکرد آن آورده شده است:
برای ساده نگه داشتن کارها ، من اطمینان حاصل کردم که تجربه کاربر نیازی به اجرای کد محلی یا تنظیم سرورها ندارد. پس از استقرار پشته ، کاربر فقط نیاز دارد:
- یک پروژه Google Cloud را تنظیم کنید.
- الگوی CloudFormation را با اعتبار OAuth خود مستقر کنید.
- جریان AUTH را با مراجعه به خروجی پیوند توسط پشته تکمیل کنید.
- پیکربندی پست برای ارسال ایمیل های ورودی به عنوان بار JSON به Webhook.
تمام اعتبار و منطق در توابع Lambda AWS با استفاده از پایتون 3 و کتابخانه استاندارد محصور می شوند و وابستگی ها را حداقل نگه می دارند. توکن ها در سرویس مدیریت کلیدی آمازون ذخیره می شوند ، که به شما امکان می دهد تا ایمیل با اطمینان همه اطلاعات مورد نیاز برای تأیید اعتبار با Google Drive API را با اطمینان مدیریت کنید.
تجربه من با Postmark بسیار عالی بود ، Fature Webhook Inbound سریع و بسیار آسان است. تحویل ایمیل کامل (به علاوه قسمت ها و پیوست های تجزیه شده) از طریق HTTP در مقایسه با کار مستقیم با IMAP یا API های نظرسنجی ، صرفه جویی زیادی بود. قادر به استخراج مطالب از ایمیل به روش ساختاری ، تعدادی از پروژه ها و ابزارها را بسیار ساده تر می کند و من مشتاقانه منتظر استفاده مجدد از ویژگی های ورودی Postmark هستم!