2009-04-02 17 views
43

हमारे पास बैकअप फ़ाइलों के लिए एक स्क्रिप्ट है। बैकअप ऑपरेशन खत्म हो जाने के बाद, हम अपने कुछ ईमेल पते पर एक ईमेल अधिसूचना के रूप में एक रिपोर्ट भेजना चाहते हैं।बैच फ़ाइल से मेल भेजना

यह कैसे किया जा सकता है?

+0

plzsendz tehcodz? –

+2

मैं उलझन में हूँ। वह पूछ रहा है कि बैच फ़ाइल से ईमेल कैसे भेजना है। यह प्रोग्रामिंग प्रश्न नहीं है? – RossFabricant

+0

इसे 'बैच' और बैश नहीं किया, मेरी टिप्पणी भूल जाओ – chburd

उत्तर

8

bmail। बस EXE स्थापित करने और इस तरह की एक पंक्ति चलाएँ:

bmail -s myMailServer -f [email protected] -t [email protected] -a "Production Release Performed" 
+0

यहां मैं सुरक्षा उद्देश्य के अनुसार बमिल स्थापित नहीं कर सकता। कृपया मुझे बताएं कि मेरी समस्या का समाधान करने के लिए कोई अलौकिक तरीका है। – user73628

+0

क्या आपने अन्य कमांड लाइन ईमेल क्लाइंट के साथ प्रयास किया है? एक Google खोज में बहुत से मुफ्त उपलब्ध टूल सूचीबद्ध हैं। –

6

सबसे आसान तरीके के रूप में दूसरों

ने उल्लेख किया है कि किसी में नहीं है एक तीसरे पक्ष के आवेदन का उपयोग करने के लिए है विकल्प मैंने vbscript & सीडीओ का उपयोग करके एक सरल प्रेषण उपयोगिता लिखी जिसे मैंने बैच स्क्रिप्ट से

यहां दिए गए उदाहरण देखें http://www.paulsadowski.com/WSH/cdo.htm

2

हम अपने पर्यावरण में हर समय ऐसा करने के लिए ब्लैट का उपयोग करते हैं। मैं इसे Stunnel के साथ जीमेल से कनेक्ट करने के लिए भी उपयोग करता हूं। यहाँ एक फ़ाइल

blat -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" -body "body" -attach c:\temp\file.txt 

भेजने के लिए पैरामीटर है या फिर आप उस फ़ाइल डाल सकते हैं शरीर

blat c:\temp\file.txt -to [email protected] -server smtp.example.com -f [email protected] -subject "subject" 
20

तुम भी एक पावर शैल स्क्रिप्ट का उपयोग कर सकते हैं के रूप में:

$smtp = new-object Net.Mail.SmtpClient("mail.example.com") 

if($Env:SmtpUseCredentials -eq "true") { 
    $credentials = new-object Net.NetworkCredential("username","password") 
    $smtp.Credentials = $credentials 
} 
$objMailMessage = New-Object System.Net.Mail.MailMessage 
$objMailMessage.From = "[email protected]" 
$objMailMessage.To.Add("[email protected]") 
$objMailMessage.Subject = "eMail subject Notification" 
$objMailMessage.Body = "Hello world!" 

$smtp.send($objMailMessage) 
+1

के रूप में चिह्नित किया जाना चाहिए था। लेकिन अगर आप '.ps1' नहीं बनाना चाहते हैं, [आप इसे सीधे बैच से कॉल कर सकते हैं] (http://stackoverflow.com/a/38604180/2518317) – Hashbrown

+0

प्रश्न बैच के बारे में था, शक्तिशक्ति नहीं। Poweshell केवल W7 और बाद में समर्थन करता है –

3

आप भी कर सकते हैं sendmail का उपयोग करें। मैं इस सबवर्सन हुक में ईमेल अधिसूचनाएं भेजने के लिए इसका उपयोग कर रहा हूं: post-commit hook

1

इस समस्या को संभालने के लिए कई विधियां हैं।

मेरी सलाह शक्तिशाली विंडोज फ्रीवेयर कंसोल एप्लिकेशन SendEmail का उपयोग करना है।

sendEmail.exe -f [email protected] -o message-file=body.txt -u subject message -t [email protected] -a attachment.zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password 
6

PowerShell comes with a built in command for it। तो एक .bat फ़ाइल से सीधे चल रहा है:

powershell -ExecutionPolicy ByPass -Command Send-MailMessage^
    -SmtpServer server.address.name^
    -To [email protected]^
    -From [email protected]^
    -Subject Testing^
    -Body 123 

नायब-ExecutionPolicy ByPass केवल जरूरत है अगर आप से यह कॉल करने के लिए उन लोगों के लिए अध्यक्ष एवं प्रबंध निदेशक

इसके अलावा से पी एस चलाने के लिए अनुमतियां सेट अप नहीं किया है पावरहेल के भीतर, -Command [समावेशी] से पहले सब कुछ छोड़ दें, और ` आपका बच निकला चरित्र होगा (^ नहीं)

संबंधित मुद्दे