اخیراً یک الزام برای ارسال ایمیل با پیوست در Office 365 (SharePoint Online) پیدا کردم. این باید یک عملکرد سفارشی باشد که در آن برای هر آیتم خط در جدول داده های jQuery (همانطور که در تصویر زیر نشان داده شده است)، کاربر باید یک ایمیل با پیوست به یک آدرس ایمیل خاص ارسال کند.
همانطور که در تصویر بالا نشان داده شده است، هر آیتم خطی دارای یک نماد ایمیل است که با کلیک روی آن باید یک پاپ با فیلدهای To، Subject، Add Attachment باز شود. با این حال، پس از جستجو در اینترنت، مشخص شد که نمیتوانیم با استفاده از REST API در شیرپوینت آنلاین، ایمیلی با پیوست ارسال کنیم.
شکل: پاپ آپ ایمیل
قطعه کد زیر اجرای REST API را برای ارسال ایمیل نشان می دهد.
- $.ajax({
- contentType: 'application/json',
- url: urlTemplate,
- type: "POST",
- data: JSON.stringify({
- 'properties': {
- '__metadata': {
- 'type': 'SP.Utilities.EmailProperties'
- },
- 'From': from,
- 'To': {
- 'results': [to]
- },
- 'Body': body,
- 'Subject': subject
- }
- }),
- headers: {
- "Accept": "application/json;odata=verbose",
- "content-type": "application/json;odata=verbose",
- "X-RequestDigest": $("#__REQUESTDIGEST").val()
- },
- success: function(data) {
- alert('Email Sent Successfully');
- },
- error: function(err) {
- alert('Error in sending Email: ' + JSON.stringify(err));
- }
- }); //End of AJAX
در کد بالا، " SP.Utilities.EmailProperties " " API (شیء) اصلی است که ایمیل را ارسال می کند، اما فقط ویژگی های ذکر شده در زیر توسط این شی آشکار می شود. بنابراین، مشخص شد که ارسال ایمیل با پیوست امکان پذیر نیست.
- BCC
- بدن
- CC
- از جانب
- موضوع
- به
شکل: فقط ویژگی های زیر توسط این شی در معرض دید قرار گرفته اند باید در فراخوانی REST استفاده شوند.
راه حل اجرا شد
بنابراین، کاری که من برای دستیابی به این قابلیت انجام دادم این بود که یک گردش کاری SharePoint Designer ایجاد کردم و زمانی که کاربر یک پیوست را در صفحه بازشو ایمیل (نشان داده شده در بالا) اضافه می کند، سند را در کتابخانه اسناد شیرپوینت اضافه کردم و سپس جریان کار را فعال می کنم.
فیلدهای "به" و "موضوع" نیز (به عنوان ابرداده) در کتابخانه اسناد به روز شدند.
بنابراین، هنگامی که کاربر یک ایمیل ارسال می کند، ما یک ورودی در کتابخانه اسناد با سند ایجاد می کنیم. با این حال، در این راه حل، در حالی که در ایمیل، ما فقط می توانیم لینک سند را برای کاربر ارسال کنیم. در زیر نمونه ایمیل ارسال شده به یک کاربر،
شکل: Email Body ارسال شده به مشتری است
نکات کلیدی که در طول این پیاده سازی یافت شد
- شما نمی توانید با استفاده از کد REST API به آدرس ایمیل خارجی ایمیل ارسال کنید. ایمیل های خارجی پشتیبانی نمی شوند. اگر بخواهید برای کاربر خارجی ایمیل بفرستید با این جمله که "گیرنده باید مشخص شود" با خطا مواجه خواهید شد.
- شما فقط می توانید برای کاربران آن مستاجر Office 365 که ایمیل را از آن راه اندازی می کنید ایمیل ارسال کنید.
- ایمیل از یک آدرس ایمیل خاص در شیرپوینت آنلاین ارسال می شود، یعنی فیلد «از» ثابت می ماند و آدرس ایمیل noreply@sharepointonline.com است.
- در زیر تنظیمات سرور IMAP برای استفاده برای ایمیل های خروجی در Office 365 آمده است.
تنظیمات IMAP (ورودی) SMTP (خروجی) نام ارائهکننده Outlook.office365.com smtp.office365.com شماره پورت 993 587 روش رمزگذاری SSL TLS
- راه حل های شخص ثالثی با استفاده از Workflows وجود دارد که امکان ارسال ایمیل با ضمیمه ها در SharePoint Designer را فراهم می کند.
خلاصه
در این مقاله جایگزینی را توضیح دادم که چگونه می توانیم یک ایمیل با پیوست (لینک سند) در شیرپوینت آنلاین (آفیس 365) ارسال کنیم.