در این مقاله قصد داریم نحوه ارسال ایمیل به چندین کاربر از طریق Office 365 SMTP با استفاده از PnP-PowerShell را ببینیم. این یک پلتفرم مبتنی بر جامعه است که توسعه سریع مؤلفه هایی را امکان پذیر می کند که زیرساخت برنامه و محتوای شما را تا حدی تعریف می کنند.
پيش نياز
قبل از اینکه شروع به استفاده از PowerShell برای نظارت بر شیرپوینت آنلاین کنید، مطمئن شوید که SharePoint Online Management Shell نصب شده است. شما می توانید با دانلود و اجرای پوسته مدیریت آنلاین شیرپوینت، پوسته مدیریت آنلاین شیرپوینت را نصب کنید . شما فقط باید این کار را یک بار برای هر کامپیوتری که از آن دستورات SharePoint Online PowerShell را اجرا می کنید انجام دهید.
با استفاده از Connect-PnPOnline cmdlet به سایت شیرپوینت متصل شوید. پارامترهای مورد نیاز عبارتند از:
URL
آدرس سایت شیرپوینت (به عنوان مثال: https://hubflysoft.sharepoint.com/sites/Hubfly).
قطعه کد زیر به اتصال سایت های شیرپوینت کمک می کند.
- $siteurl="https://<tenant-name>.sharepoint.com"
- Connect-PnPOnline -Url $siteurl
در اینجا، ما از Excel برای ذخیره اطلاعات ایمیل کاربر استفاده کردیم. از PnP PowerShell می توانیم داده ها را از Excel بخوانیم. برای آگاهی از نحوه خواندن داده ها از اکسل با استفاده از PowerShell، از این وبلاگ مفصل دیدن کنید .
عکس فوری زیر نشان می دهد که چگونه جزئیات ایمیل کاربران در یک کاربرگ اکسل ذخیره می شود.
یک نمونه Excel.Application Object جدید از رابط Com مانند قطعه کد زیر ایجاد کنید.
- excelObj = New-Object -ComObject Excel.Application
کتاب کار اکسل را با استفاده از شی اکسل باز کنید. اکنون می توانید به ویژگی های Excel دسترسی داشته باشید.
- $filePath ="F:\Ravishankar\email_details.xlsx"
- $workBook = $excelObj.Workbooks.Open($filePath)
کاربرگ را از کتاب کار اکسل با استفاده از Index انتخاب کنید.
- $workSheet = $workBook.sheets.Item(1)
در اینجا، ما یک ایمیل از طریق Office 365 SMTP ارسال کردهایم که به آدرس ایمیل و رمز عبور نیاز دارد. ایمیل می تواند از کاربر و به هر دو آدرس داخلی و خارجی ارسال شود. ما می توانیم جزئیات ایمیل را از اکسل با استفاده از محدوده هایی مانند زیر انتخاب کنیم.
- $from=”username@domain.com”
- $subject=”Test Email”
- $body=”This is an Test Email”
- $password=”****”
- $range= 3
- for($i=1;$i-le $range;$i++)
- {
- $toEmail= $workSheet.Columns.Item(1).Rows.Item($i).Text
- Send-PnPMail -To $toEmail -From $from -Subject $subject -Body $body -Password $password
- }
در نهایت، کتاب کار اکسل را مانند قطعه زیر ببندید.
- $excelObj.Workbooks.Close()
کد نهایی
- $filePath ="F:\Ravishankar\email_details.xlsx"
- # Create an Object Excel.Application using Com interface
- $excelObj = New-Object -ComObject Excel.Application
- # Disable the 'visible' property so the document won't open in excel
- $excelObj.Visible = $false
- #open WorkBook
- $workBook = $excelObj.Workbooks.Open($filePath)
- #Select worksheet using Index
- $workSheet = $workBook.sheets.Item(1)
- #Select the range
- $from=”username@domain.com”
- $subject=”Test Email”
- $body=”This is an Test Email”
- $password=”****”
- $range= 3
- for($i=1;$i-le $range;$i++){
- $toEmail= $workSheet.Columns.Item(1).Rows.Item($i).Text
- Send-PnPMail -To $toEmail -From $from -Subject $subject -Body $body -Password $password
- }
- $excelObj.Workbooks.Close()
بنابراین، ما یاد گرفتیم که چگونه با استفاده از برنامه نویسی PnP PowerShell چندین ایمیل از Office 365 SMTP به صورت برنامه نویسی ارسال کنیم. در صورت نیاز به کمک، می توانید کادر نظر زیر را پر کنید.