यह लेख आपको तिथि के आधार पर Excel से स्वचालित रूप से ईमेल भेजने के सर्वोत्तम संभव तरीके दिखाएगा। आमतौर पर, Outlook या Gmail से ईमेल भेजना आसान है, लेकिन जब आप किसी विशेष समय या तिथि पर ईमेल भेजना चाहते हैं, तो आप Microsoft Excel का प्रभावी ढंग से उपयोग कर सकते हैं।
डेटासेट में, हमारे पास कुछ ईमेल पते हैं (उनमें से सभी डमी पते हैं सिवाय admin@wsxdn.com के, जो मेरा है। मैं अपने पते का उपयोग कर रहा हूं ताकि मैं आपको दिखा सकूं कि तरीके कैसे काम करते हैं।)

तिथि के आधार पर Excel से स्वचालित रूप से ईमेल भेजने के 3 तरीके
1. निश्चित तिथि के आधार पर स्वचालित रूप से ईमेल भेजने के लिए Excel VBA का उपयोग करना
हम Microsoft Visual Basic for Application (VBA) का उपयोग करके तिथियों के आधार पर स्वचालित रूप से ईमेल भेज सकते हैं। आप उन तिथियों की एक सूची बना सकते हैं जब आप संबंधित प्राप्तकर्ताओं को ईमेल भेजना चाहते हैं। बेहतर समझ के लिए नीचे दी गई प्रक्रिया देखें। इस खंड में, हम केवल तिथियों के साथ काम करेंगे।
चरण:
- सबसे पहले, Developer >> Visual Basic पर जाएं।

- फिर VBA विंडो खुलेगी। Insert >> Module चुनें।
VBA Module में निम्न कोड टाइप करें।
Sub SendEmail01() Dim Range_Select As Range Dim Date_Range As Range Dim Cell_Address As String Dim Subject, Email_From, Email_To, Cc, Bcc, Email_Text As String Dim Email_Obj, Single_Mail As Object On Error Resume Next Cell_Address = ActiveWindow.RangeSelection.Address Set Range_Select = Application.InputBox("Select a range:", _ "Message Box", Cell_Address, , , , , 8) If Range_Select Is Nothing Then Exit Sub For Each Date_Range In Range_Select If Date_Range.Value = Date Then Subject = Application.InputBox("Subject: ", "Message", , , , , , 2) Email_From = Application.InputBox("Send from: ", "Message Box", , , , , , 2) Email_To = Application.InputBox("Send to: ", "Message Box", , , , , , 2) If Email_To = "" Then Exit Sub Cc = Application.InputBox("CC: ", "Message Box", , , , , , 2) Bcc = Application.InputBox("BCC: ", "Message Box", , , , , , 2) Email_Text = Application.InputBox("Message Body: ", "Message Box", , , , , , 2) Set Email_Obj = CreateObject("Outlook.Application") Set Single_Mail = Email_Obj.CreateItem(0) With Single_Mail .Subject = Subject .To = Email_To .Cc = Cc .Bcc = Bcc .Body = Email_Text .send End With End If Next End Sub

कोड व्याख्या
- सबसे पहले, हमने कुछ आवश्यक चर घोषित किए: Range_Select और Date_Range को Range के रूप में; Cell_Address, Subject, Email_From, Email_To, Cc, Bcc, Email_Text को String के रूप में; Email_Obj और Single_Mail को Object के रूप में।
- फिर हमने Range_Select को एक InputBox पर सेट किया जहां यह एक Message Box के माध्यम से सेल्स की रेंज चुन सकता है।
- उसके बाद, हमने VBA IF स्टेटमेंट में Value का उपयोग किया और Subject, Email_From और Email_To को InputBox पर सेट किया।
- यदि कोई ईमेल पता नहीं है (Email_To= “”), तो Sub Procedure बाहर निकल जाएगा। अन्यथा, हम एक नए IF स्टेटमेंट में कुछ और चर डालते हैं। Cc और Bcc उस ईमेल के कार्बन कॉपी और ब्लाइंड कार्बन कॉपी को संदर्भित करते हैं जिसे हम अलग-अलग लोगों को भेजना चाहते हैं।
- फिर हम एक Outlook Application Object बनाते हैं जिसे हम Email_Obj द्वारा परिभाषित करते हैं। साथ ही, हम Email_Obj के लिए एक आइटम बनाने के लिए Single_Mail का उपयोग करते हैं।
- उसके बाद, हम With स्टेटमेंट द्वारा Subject, Email_To, Cc, Bcc, Email_Text को ईमेल के आवश्यक भागों के रूप में परिभाषित करते हैं। हम इस स्टेटमेंट में .Send कमांड भी डालते हैं।
- अब, अपनी शीट पर वापस जाएं और SendEmail01 नामक Macro चलाएं क्योंकि यह आपके वर्तमान Macro का नाम है।

- इस ऑपरेशन को निष्पादित करने के बाद, आप एक Message Box पॉप अप देखेंगे जो आपको तिथि रेंज चुनने के लिए कहेगा। रेंज चुनें और OK पर क्लिक करें।

- फिर, एक और Message Box पॉप अप होगा। विषय टाइप करें और OK पर क्लिक करें।

- आप Message Boxes की एक श्रृंखला देखेंगे जो आपको ईमेल भेजने के लिए आवश्यक जानकारी डालने के लिए कहेगी। बस नीचे दी गई छवियों का पालन करें।
- अपना ईमेल पता डालें।

- वह ईमेल पता टाइप करें जहां आप अपना ईमेल भेजेंगे।

- CC प्राप्तकर्ता का पता डालें।

- Message Box में BCC प्राप्तकर्ता डालें यदि आप चाहते हैं। मैंने कोई नहीं चुना।

- अना संदेश टाइप करें।

- अंतिम Message Box के बाद, आप Microsoft Outlook से एक चेतावनी बॉक्स देख सकते हैं। Allow पर क्लिक करें।

यह ऑपरेशन उन पतों पर ईमेल भेजेगा जिन्हें आपने संबंधित message boxes में डाला है।
यह मुख्य ईमेल है।

और नीचे यहां ईमेल की कार्बन कॉपी है।

इस प्रकार आप तिथि के आधार पर Excel से स्वचालित रूप से एक ईमेल भेज सकते हैं।
अधिक पढ़ें: Excel मैक्रो स्वचालित रूप से ईमेल भेजने के लिए (3 उपयुक्त उदाहरण)
2. Excel से भविष्य की तिथियों के आधार पर स्वचालित रूप से ईमेल भेजना
इस खंड में, हम भविष्य या अगली तिथियों के आधार पर ईमेल भेजेंगे। मान लीजिए आप किसी को 3 दिन या 7 दिन पहले ईमेल भेजना चाहते हैं। आइए इस मामले पर निम्नलिखित चर्चा देखें।
चरण:
- सबसे पहले, VBA Module खोलने का तरीका देखने के लिए खंड 1 देखें।
- फिर VBA Module में निम्न कोड टाइप करें।
Public Sub SendEmail02() Dim Date_Range As Range Dim Mail_Recipient As Range Dim Email_Text As Range Dim Outlook_App_Create As Object Dim Mail_Item As Object Dim Last_Row As Long Dim VB_CR_LF, Email_Body, Date_Range_Value, Send_Value, Subject As String Dim i As Long On Error Resume Next Set Date_Range = Application.InputBox("Please choose the date range:", "Message Box", , , , , , 8) If Date_Range Is Nothing Then Exit Sub Set Mail_Recipient = Application.InputBox("Please select the Email addresses:", "Message Box", , , , , , 8) If Mail_Recipient Is Nothing Then Exit Sub Set Email_Text = Application.InputBox("Select the Email Text:", "Message Box", , , , , , 8) If Email_Text Is Nothing Then Exit Sub Last_Row = Date_Range.Rows.Count Set Date_Range = Date_Range(1) Set Mail_Recipient = Mail_Recipient(1) Set Email_Text = Email_Text(1) Set Outlook_App_Create = CreateObject("Outlook.Application") For i = 1 To Last_Row Date_Range_Value = "" Date_Range_Value = Date_Range.Offset(i - 1).Value If Date_Range_Value <> "" Then If CDate(Date_Range_Value) - Date <= 7 And CDate(Date_Range_Value) - Date > 0 Then Send_Value = Mail_Recipient.Offset(i - 1).Value Subject = Email_Text.Offset(i - 1).Value & " on " & Date_Range_Value VB_CR_LF = "<br><br>" Email_Body = "<HTML><BODY>" Email_Body = Email_Body & "Dear " & Send_Value & VB_CR_LF Email_Body = Email_Body & "Text : " & Email_Text.Offset(i - 1).Value & VB_CR_LF Email_Body = Email_Body & "</BODY></HTML>" Set Mail_Item = Outlook_App_Create.CreateItem(0) With Mail_Item .Subject = Subject .To = Send_Value .HTMLBody = Email_Body .Display End With Set Mail_Item = Nothing End If End If Next Set Outlook_App_Create = Nothing End Sub

कोड व्याख्या
- सबसे पहले, हमने कुछ आवश्यक चर घोषित किए: Date_Range, Mail_Recipient और Email_Text को Range के रूप में; Outlook_App_Create और Mail_Item को Object के रूप में; Last_Row और i को Long के रूप में; VB_CR_LF (Visual Basic Carriage Return Line Feed), Email_Body, Date_Range_Value, Send_Value, Subject को String के रूप में।
- फिर हमने Date_Range को एक InputBox पर सेट किया जहां यह एक Message Box के माध्यम से तिथियों की रेंज चुन सकता है। If Statement का उपयोग Sub Procedure को समाप्त करने के लिए किया जाता है यदि Date_Range Nothing है।
- हमने Mail_Recipient और Email_Text को भी InputBox पर सेट किया।
- उसके बाद, हम एक Outlook Application Object बनाते हैं जिसे हम Outlook_App_Create द्वारा परिभाषित करते हैं।
- एक तिथि अंतराल पेश किया गया है। इस कोड में, अवधि 7 है। मान लीजिए आप किसी को आज जो 19 मई है, उसके 7 दिन बाद घटना या शुभकामनाओं के बारे में याद दिलाना चाहते हैं। यदि आप जिन ईमेल को भेजना चाहते हैं वे 20 से 26 मई के बीच की तिथियों के भीतर हैं, तो प्राप्तकर्ता को ईमेल प्राप्त होगा। अन्यथा, यह नहीं पहुंचेगा।
- फिर हम Email_Body को फॉर्मेट करने के लिए कुछ कमांड डालते हैं। और With Statement द्वारा ईमेल के आवश्यक भागों को भी परिभाषित करते हैं।
- हमने यहां .Display कमांड का उपयोग किया ताकि Outlook इन ईमेल ड्राफ्ट को खोले और हम जांच सकें कि क्या कोई अन्य संदेश भेजने की आवश्यकता है। आप .Send कमांड का उपयोग कर सकते हैं यदि आप संदेश ड्राफ्ट नहीं देखना चाहते। लेकिन इन दो कमांड का एक साथ उपयोग न करें।
- अब, अपनी शीट पर वापस जाएं और SendEmail02 नामक Macro चलाएं क्योंकि यह आपके वर्तमान Macro का नाम है।

- इस ऑपरेशन को निष्पादित करने के बाद, आप एक message box पॉप अप देखेंगे जो आपको तिथि रेंज चुनने के लिए कहेगा। रेंज चुनें और OK पर क्लिक करें।

- फिर, एक और message box पॉप अप होगा और यह आपको ईमेल पता रेंज चुनने के लिए कहेगा। रेंज चुनें और OK पर क्लिक करें।

- उसके बाद, message box में टेक्स्ट संदेशों की रेंज चुनें और OK पर क्लिक करें।

- आप 21 मई से 24 मई के लिए ईमेल ड्राफ्ट देखेंगे। यहां, ID admin@wsxdn.com एक वास्तविक ईमेल ID है, इसलिए हमने इस पते पर संबंधित ईमेल भेजकर आपको उदाहरण दिखाया। यदि आप चाहें तो CC प्राप्तकर्ता डाल सकते हैं।

- आइए मेरे ईमेल जांचें। यह Spam बॉक्स में भी जा सकता है। इसलिए हर जगह जांचें।

इस प्रकार आप भविष्य की तिथियों के आधार पर स्वचालित रूप से ईमेल भेज सकते हैं।
अधिक पढ़ें: VBA का उपयोग करके Excel वर्कशीट से स्वचालित रूप से रिमाइंडर ईमेल भेजें
समान पठन
- साझा Excel फ़ाइल में कौन है कैसे देखें (त्वरित चरणों के साथ)
- Excel में शेयर वर्कबुक सक्षम करें
- एकाधिक उपयोगकर्ताओं के लिए Excel फ़ाइल कैसे साझा करें
- Excel का उपयोग करके Outlook से बल्क ईमेल भेजें (3 तरीके)
- Excel से अटैचमेंट के साथ ईमेल भेजने के लिए मैक्रो कैसे लागू करें
3. एकल पते पर तिथि के आधार पर स्वचालित रूप से ईमेल भेजना
हम एकल पते पर तिथि के आधार पर स्वचालित रूप से ईमेल भी भेज सकते हैं। आप उन तिथियों की एक सूची बना सकते हैं जब आप संबंधित प्राप्तकर्ताओं को ईमेल भेजना चाहते हैं। बेहतर समझ के लिए नीचे दी गई प्रक्रिया देखें। इस खंड में, हम केवल तिथियों के साथ काम करेंगे।
चरण:
- सबसे पहले, VBA Module खोलने का तरीका देखने के लिए खंड 1 देखें।
- VBA Module में निम्न कोड टाइप करें।
Option Explicit Sub SendEmail03() Dim Date_Range As Range Dim rng As Range Set Date_Range = Range("B5:B10") For Each rng In Date_Range If rng.Value = Date Then Dim Subject, Send_From, Send_To, _ Cc, Bcc, Body As String Dim Email_Obj, Single_Mail As Variant Subject = "Hello there!" Send_From = "admin@wsxdn.com" Send_To = "admin@wsxdn.com" Cc = "admin@wsxdn.com" Bcc = "" Body = "Hope you are enjoying the article" On Error GoTo debugs Set Email_Obj = CreateObject("Outlook.Application") Set Single_Mail = Email_Obj.CreateItem(0) With Single_Mail .Subject = Subject .To = Send_To .Cc = Cc .Bcc = Bcc .Body = Body .send End With End If Next Exit Sub debugs: If Err.Description <> "" Then MsgBox Err.Description End Sub

कोड व्याख्या
- सबसे पहले, हमने कुछ आवश्यक चर घोषित किए: rng और Date_Range को Range के रूप में।
- फिर हम Date_Range के लिए रेंज परिभाषित करते हैं।
- उसके बाद, हम VBA IF स्टेटमेंट में Value का उपयोग करते हैं और Subject, Send_From, Send_To, Cc, Bcc और Body को String पर सेट करते हैं। साथ ही, हम Email_Obj और Single_Mail को Variant के रूप में सेट करते हैं।
- फिर हम Subject, Send_From, Send_To, Cc और Bcc के लिए टेक्स्ट मान सेट करते हैं।
- बाद में, हम एक Outlook Application Object बनाते हैं जिसे हम Email_Obj द्वारा परिभाषित करते हैं। साथ ही, हम Email_Obj के लिए एक आइटम बनाने के लिए Single_Mail का उपयोग करते हैं।
- उसके बाद, हम With स्टेटमेंट द्वारा Subject, Send_To, Cc, Bcc, Body को ईमेल के आवश्यक भागों के रूप में परिभाषित करते हैं। हम इस स्टेटमेंट में .Send कमांड भी डालते हैं।
- अब, अपनी शीट पर वापस जाएं और SendEmail01 नामक Macro चलाएं क्योंकि यह आपके वर्तमान Macro का नाम है।

- उसके बाद, आप Microsoft Outlook से एक चेतावनी बॉक्स देख सकते हैं। Allow पर क्लिक करें।

यह ऑपरेशन उन पतों पर ईमेल भेजेगा जिन्हें आपने संबंधित message boxes में डाला है।
यह मुख्य ईमेल है।

और नीचे यहां ईमेल की कार्बन कॉपी है।

इस प्रकार आप तिथि के आधार पर Excel से स्वचालित रूप से एक ईमेल भेज सकते हैं।
अधिक पढ़ें: Excel में शर्त पूरी होने पर स्वचालित रूप से ईमेल कैसे भेजें
अभ्यास अनुभाग
इस खंड में, मैं आपको वह डेटासेट दे रहा हूं जिसका उपयोग हमने इस लेख में किया है ताकि आप स्वयं अभ्यास कर सकें।
याद रखने योग्य बातें
इस लेख में VBA कोड चलाने के लिए हमेशा अपना Outlook खाता खोलें और लॉग इन करें।
निष्कर्ष
निचला रेखा यह है कि आप तिथि के आधार पर Excel से स्वचालित रूप से ईमेल भेजने के प्रभावी तरीके सीखेंगे। यदि आपके कोई बेहतर विचार या प्रतिक्रिया है, तो कृपया उन्हें टिप्पणी बॉक्स में साझा करें। यह मेरे आगामी लेखों को समृद्ध करने में मदद करेगा।
संबंधित लेख
- [हल]: Excel में शेयर वर्कबुक नहीं दिख रहा (आसान चरणों के साथ)
- Excel सूची से ईमेल कैसे भेजें (2 प्रभावी तरीके)
- ईमेल द्वारा संपादन योग्य Excel स्प्रेडशीट कैसे भेजें (3 त्वरित तरीके)
- Excel से ईमेल भेजने के लिए मैक्रो (5 उपयुक्त उदाहरण)
- बॉडी के साथ Excel से ईमेल भेजने के लिए मैक्रो (3 उपयोगी केस)
- Excel VBA: सेल में पते पर ईमेल भेजें (2 आसान तरीके)
