Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

Send-MailMessage:PowerShell से ईमेल भेजना

SMTP सर्वर के माध्यम से ईमेल संदेश भेजने के लिए, आप मेल संदेश भेजें . का उपयोग कर सकते हैं पावरशेल सीएमडीलेट। आप इस अंतर्निहित cmdlet का उपयोग PowerShell संस्करण 2.0 और नए में ईमेल भेजने के लिए कर सकते हैं (पहले आप .Net System.Net.Mail का उपयोग कर सकते हैं। ईमेल भेजने के लिए कक्षा)। इस लेख में हम दिखाएंगे कि भेजें-मेल संदेश . का उपयोग कैसे करें PowerShell स्क्रिप्ट से ईमेल भेजने के लिए।

cmdlet का सिंटैक्स प्राप्त करने के लिए, यह कमांड चलाएँ:

सहायता प्राप्त करें-भेजें-मेलसंदेश

<पूर्व>भेजें-मेल संदेश [-टू] <स्ट्रिंग[]> [-विषय] <स्ट्रिंग> [[-बॉडी] <स्ट्रिंग>] [[-एसएमटीपीसर्वर] <स्ट्रिंग>] [-संलग्नक <स्ट्रिंग[]>] [ -गुप्त प्रति सफलता पर | विफलता पर | देरी | कभी नहीं}] [-एन्कोडिंग <एन्कोडिंग>] - <स्ट्रिंग> से [-पोर्ट ] [-प्राथमिकता {सामान्य | कम | High}] [-UseSsl] []Send-MailMessage cmdlet, Windows PowerShell के भीतर से एक ईमेल संदेश भेजता है।

Send-MailMessage:PowerShell से ईमेल भेजना

यहां मुख्य विकल्प दिए गए हैं:

  • प्रेषक एक प्रेषक का पता है (यदि एसएमटीपी सर्वर प्रेषक के पते की जांच नहीं करता है और गुमनाम रूप से ईमेल भेजने की अनुमति देता है, तो आपको एक वास्तविक एसएमटीपी पता प्रदान करने की आवश्यकता नहीं है। आप किसी भी ईमेल पते की ओर से ईमेल संदेश भेज सकते हैं);
  • प्रति - प्राप्तकर्ता ईमेल पता;
  • एसएमटीपीसर्वर -एसएमटीपी सर्वर का पता जिसके जरिए आप ईमेल भेजना चाहते हैं।
यदि आप मेल सर्वर का पता $PSEmailServer . में सेट करते हैं पर्यावरण चर, आपको Send-MailMessage cmdlet में SMTP सर्वर पता निर्दिष्ट करने की आवश्यकता नहीं है।

निम्नलिखित सरल पावरशेल कमांड कई प्राप्तकर्ताओं को निर्दिष्ट विषय और मुख्य भाग के साथ एक ईमेल भेजेगा।

भेजें-मेलसंदेश-'ps-script@woshub.com' से-'serveradmin@woshub.com','helpdesk@woshub.com' तक -विषय "ईमेल अलर्ट का परीक्षण करें" -बॉडी "यह ईमेल बॉडी टेक्स्ट है" -SmtpServer 'smtp.woshub.com'

एक cmdlet की विशेषताओं को संपादित करना आसान बनाने के लिए, ईमेल भेजें कमांड को निम्नानुसार दर्शाया जा सकता है:

भेजें-मेलसंदेश `
-SmtpServer smtp.woshub.com `
- 'serveradmin@woshub.com','helpdesk@woshub.com' `
-से 'ps- script@woshub.com' `
-विषय "टेस्ट" `
-बॉडी "PowerShell का उपयोग करके ईमेल भेजना" `
-एन्कोडिंग 'UTF8'

ध्यान दें कि अंतिम कमांड में हमने ईमेल के लिए UTF8 एन्कोडिंग को अतिरिक्त रूप से सेट किया है। अन्यथा, यदि ईमेल विषय या मुख्य भाग में गैर एएनएसआई वर्ण हैं, तो उन्हें गलत तरीके से प्रदर्शित किया जाएगा।

डिफ़ॉल्ट रूप से, Windows PowerShell में ANSI और ASCII एन्कोडिंग का उपयोग किया जाता है। यदि आपने अपने PS संस्करण को PowerShell Core में अपडेट किया है, तो ध्यान रखें कि यह संस्करण पहले से ही डिफ़ॉल्ट रूप से UTF-8 एन्कोडिंग का उपयोग करता है।

डिफ़ॉल्ट रूप से, Send-MailMessage cmdlet मानक SMTP पोर्ट TCP 25 के माध्यम से एक ईमेल भेजने का प्रयास करता है। यदि आपका SMTP सर्वर केवल एन्क्रिप्टेड प्रोटोकॉल का उपयोग करके ईमेल भेजने की अनुमति देता है, तो आप पोर्ट नंबर निर्दिष्ट कर सकते हैं (अक्सर यह 465 या 587 होता है) ) और Ssl का उपयोग करें विकल्प:

-SmtpServer 'smtp.woshub.com' -पोर्ट 465 -UseSsl

नीचे दी गई तालिका लोकप्रिय सार्वजनिक ईमेल प्रदाताओं के SMTP सर्वर पैरामीटर दिखाती है जिनका उपयोग आप PowerShell से संदेश भेजने के लिए कर सकते हैं (ध्यान दें कि आपको खाता इंटरफ़ेस में SMTP के माध्यम से ईमेल भेजने की अनुमति देनी होगी):

नाम SMTP सर्वर पता पोर्ट एन्क्रिप्शन प्रकार
जीमेल smtp.gmail.com 587

25

465

TLS

टीएलएस

एसएसएल

कार्यालय 365 smtp.office365.com 587 TLS
Outlook.com smtp-mail.outlook.com 587 TLS
याहू smtp.mail.yahoo.com 587 TLS
आईक्लाउड मेल smtp.mail.me.com 587 TLS
एओएल  smtp.aol.com 465 एसएसएल

यदि SMTP सर्वर गुमनाम रूप से ईमेल भेजने पर रोक लगाता है (रिले अस्वीकार कर दिया गया है), तो आपको यह त्रुटि दिखाई देगी:

5.7.1 क्लाइंट प्रमाणित नहीं किया गया था।

फिर आप –Credential . का उपयोग करके SMTP सर्वर पर प्रमाणित कर सकते हैं विकल्प।

प्रमाणित करने के लिए आप अंतःक्रियात्मक रूप से उपयोगकर्ता क्रेडेंशियल्स का अनुरोध कर सकते हैं:

भेजें-मेलसंदेश……-क्रेडेंशियल (प्राप्त-क्रेडेंशियल)

Send-MailMessage:PowerShell से ईमेल भेजना

साथ ही, आप वेरिएबल में प्रमाणीकरण के लिए उपयोग किए जाने वाले खाते को निर्दिष्ट कर सकते हैं:

$cred =Get-Credential
Send-MailMessage ... -Credential $cred

यदि आप SMTP सर्वर से सीधे PowerShell स्क्रिप्ट में कनेक्ट करने के लिए पासवर्ड सहेजना चाहते हैं, तो इस सिंटैक्स का उपयोग करें:

$mypasswd =ConvertTo-SecureString "smP@ssdw0rrd2" -AsPlainText -Force
$mycreds =New-Object System.Management.Automation.PSCredential ("user1@woshub.com", $mypasswd)
भेजें-मेलसंदेश... -क्रेडेंशियल $mycreds

PowerShell स्क्रिप्ट में सुरक्षित रूप से सहेजे गए क्रेडेंशियल का उपयोग करते हुए एक लेख देखें।

यदि आप अपने ईमेल में कोई अटैचमेंट जोड़ना चाहते हैं, तो –अटैचमेंट . का उपयोग करें विकल्प। नीचे दिए गए उदाहरण में, हम HTML प्रारूप में एक ईमेल भेजेंगे और स्थानीय डिस्क से file1.txt और install.log संलग्न करेंगे। हम जीमेल एसएमटीपी सर्वर का उपयोग करेंगे (पहले आपको जीमेल में एक ऐप पासवर्ड बनाना होगा और अपने जीमेल पासवर्ड के बजाय एसएमटीपी प्रमाणीकरण के लिए इसका इस्तेमाल करना होगा):

$MailMessage = @{
To = "admin@woshub.com"
Bcc = "manager@woshub.com", "manager2@woshub.com"
From = "smtpsender1 @gmail.com"
विषय = "DC सर्वर रिपोर्ट"
बॉडी = "

स्वागत है!

 

जेनरेट किया गया: $(गेट-डेट - फ़ॉर्मैट g)

"
Smtpserver = "smtp.gmail.com"
पोर्ट = 587
UseSsl = $true
BodyAsHtml = $true
एन्कोडिंग =“UTF8”
अटैचमेंट = “C:\Logs\file1.txt”, “C:\Logs\install.log”
}
मेल मैसेज भेजें @MailMessage -Credential $cred
कोड>

यहां बताया गया है कि अटैचमेंट के साथ HTML प्रारूप में ईमेल जीमेल इंटरफेस में कैसा दिखता है।

Send-MailMessage:PowerShell से ईमेल भेजना

आप -DeliveryNotificationOption का उपयोग करके ईमेल के लिए डिलीवरी नोटिफिकेशन (रसीद पढ़ें) को कॉन्फ़िगर कर सकते हैं . यदि प्राप्तकर्ता को कोई ईमेल प्राप्त होता है, तो डिलीवरी सूचना आपको सूचित करने की अनुमति देती है।

उपलब्ध अधिसूचना प्रकार हैं:

  • सफल होने पर (डिलीवरी सफल होने पर सूचित करें)
  • विफलता पर (डिलीवरी असफल होने पर सूचित करें)
  • विलंब (डिलीवरी में देरी होने पर सूचित करें)


  1. ईमेलजेएस के साथ अपने Vue.js एप्लिकेशन से ईमेल कैसे भेजें

    कुछ दिनों पहले मैंने एक साधारण Vue प्रोजेक्ट पर काम करने का फैसला किया और मेरे द्वारा अभी बनाए गए संपर्क के माध्यम से ईमेल भेजने की आवश्यकता थी। जब भी कोई मेरा संपर्क फ़ॉर्म भरता है, तो मैं हर बार एक स्वचालित ईमेल प्राप्त करना चाहता था। तो मुझे ईमेलजे पर खोजना और ठोकर खाना पड़ा। मैंने इस लेख को लि

  1. अपने Mac से एन्क्रिप्टेड ईमेल कैसे भेजें

    ईमेल का आदान-प्रदान आमतौर पर एक सुरक्षित मामला रहा है और प्रदाता आपके द्वारा भेजे और प्राप्त ईमेल की सुरक्षा का ध्यान रखते हैं। हालांकि ईमेल एन्क्रिप्शन एक ऐसी चीज है जो आपके द्वारा उपयोग की जाने वाली सभी ईमेल सेवाओं में उपलब्ध नहीं हो सकती है। यदि आप अपने ईमेल को और सुरक्षित करना चाहते हैं, तो आप इ

  1. Excel List से ईमेल कैसे भेजें (2 प्रभावी तरीके)

    जब आपको लोगों के एक बड़े समूह को एक सामूहिक ईमेल भेजने की आवश्यकता होती है, तो आपको एक स्वचालित प्रक्रिया की आवश्यकता होगी जो दोहराए जाने वाले कार्यों को जल्दी से संभाल सके। एक एक्सेल . बनाना ईमेल की सूची वाली फ़ाइल सामूहिक ईमेल भेजने का सबसे आम तरीका है। तो, इस ट्यूटोरियल में, हम आपको दिखाएंगे कि