2013-04-23 7 views
5

में मैक्रो का उपयोग करते हुए मेल भेजते समय मैं Outlook चेतावनी को कैसे दबा सकता हूं, मैं एक्सेल में मैक्रो का उपयोग करके एक ईमेल भेजने की कोशिश कर रहा हूं।एक्सेल

लेकिन जब मैं इस कोड को चलाने मेरी मेल क्लाइंट यानी एमएस आउटलुक एक पॉप अप
Someone is tying to send mail on behalf of you. select yes or no

वहाँ का उपयोग कर उस चेतावनी को दबाने के लिए कोई तरीका है के लिए इसी तरह की चेतावनी तो ईमेल किसी भी बिना भेजा जाना चाहिए पता चलता मुसीबत?

+2

क्या आप कृपया जिस कोड का उपयोग कर रहे हैं उसे पोस्ट कर सकते हैं? –

+2

देखें http://www.rondebruin.nl/win/s1/security.htm – brettdj

उत्तर

3

मुझे पता है कि सबसे अच्छा तरीका एक आउटलुक एप्लिकेशन आइटम बनाना, संदेश बनाना, संदेश प्रदर्शित करना और संदेश भेजने के लिए प्रेषक का उपयोग करना है (टाइपिंग alt के समतुल्य)।

दोष यह है कि प्रेषक विधि थोड़ा छोटी हो सकती है। इसे और अधिक मजबूत बनाने के लिए मुझे मेल आइटम के लिए इंस्पेक्टर मिल जाता है यानी वह विंडो जो अंदर है और प्रेषक को कॉल से पहले इसे सक्रिय करें। कोड नीचे दिखाया गया है:

Dim olApp As outlook.Application 
Dim objNS As Outlook.Namespace 
Dim objMail As Outlook.MailItem 
Dim objSentItems As Outlook.MAPIFolder 
Dim myInspector As Outlook.Inspector 

'Check whether outlook is open, if it is use get object, if not use create object 
On Error Resume Next 
Set olApp = GetObject(, "Outlook.Application") 
On Error GoTo 0 
If olApp Is Nothing Then 
    Set olApp = CreateObject("Outlook.Application") 
End If 

Set objNS = olApp.GetNamespace("MAPI") 
objNS.Logon 

'Prepare the mail object  
Set objMail = olApp.CreateItem(olMailItem) 

With objMail 
.To = <insert recipients name as string> 
.Subject = <insert subject as string> 
.Body = <insert message as string> 
.Display 
End With 

'Give outlook some time to display the message  
Application.Wait (Now + TimeValue("0:00:05")) 

'Get a reference the inspector obj (the window the mail item is displayed in) 
Set myInspector = objMail.GetInspector 

'Activate the window that the mail item is in and use sendkeys to send the message 
myInspector.Activate 
SendKeys "%s", True 

मैं सामान्य रूप से तो जाँच करने के लिए भेजी जाने वाली फ़ोल्डर में आइटम की संख्या बढ़ गई और एप्लिकेशन को पुनः प्रतीक्षा करें और कोड के अंतिम 2 लाइनों को दोहराने और पुनः जाँच करें नहीं तो मैं कोड है कि भेजे गए फ़ोल्डर में संदेशों की संख्या में वृद्धि हुई है। कोड यह 5 गुना तक करता है। 5 वें समय के बाद एक संदेश बॉक्स चेतावनी देता है कि संदेश भेजा नहीं जा सकता है।

मुझे एक्सेल से संदेश भेजने में विफल होने के लिए इस विधि को कभी भी नहीं मिला है, हालांकि जब हमारी प्रणाली विशेष रूप से धीमी थी, तब मैंने चेतावनी संदेश देखा था, जांच पर यह पता चला कि संदेश भेजा गया था।

+0

क्या 'objMail.GetInspector' अभी भी मौजूद है? लाइन पर त्रुटि प्राप्त करना 'आइटम को स्थानांतरित या हटा दिया गया है।' – aaa

1

हैं कि यह चेतावनी निष्क्रिय करने के लिए एक मुक्ति DLL का उपयोग की आवश्यकता है ...

डाउनलोड http://www.dimastr.com/redemption

मैं एक तरह से मशीन स्वत: पर इस DLL स्थापित करने के लिए, तुम कोशिश कर सकते बनाया ...

http://www.officevb.com/2011/02/copiando-e-registrando-componentes-na.html

0

मुझे कुछ साल पहले इंटरनेट पर कहीं नीचे कोड मिला। यह स्वचालित रूप से आपके लिए 'हां' का उत्तर देता है।

Function TurnAutoYesOn() 
Dim wnd As Long 
Dim uClickYes As Long 
Dim Res As Long 
uClickYes = RegisterWindowMessage("CLICKYES_SUSPEND_RESUME") 
wnd = FindWindow("EXCLICKYES_WND", 0&) 
Res = SendMessage(wnd, uClickYes, 1, 0) 

End Function 

Function TurnOffAutoYes() 
Dim wnd As Long 
Dim uClickYes As Long 
Dim Res As Long 
uClickYes = RegisterWindowMessage("CLICKYES_SUSPEND_RESUME") 
wnd = FindWindow("EXCLICKYES_WND", 0&) 
Res = SendMessage(wnd, uClickYes, 0, 0) 
End Function 


Function fEmailTest() 

TurnAutoYesOn '*** Add this before your email has been sent 



Set appOutLook = CreateObject("Outlook.Application") 
Set MailOutLook = appOutLook.CreateItem(olMailItem) 
With MailOutLook 
    .To = " <[email protected]>; <[email protected]" 
    .Subject = "Your Subject Here" 
    .HTMLBody = "Your message body here" 
    .Send 
End With 

TurnOffAutoYes '*** Add this after your email has been sent 


End Function 
+0

यह कहता है कि RegisterWindowMessage परिभाषित नहीं है। क्या आपके पास उस कोड का हिस्सा है जो इसका प्रबंधन करता है? धन्यवाद। – dsauce

0

खिड़की के साथ क्योंकि मैक्रो एक विश्वसनीय प्रकाशक द्वारा हस्ताक्षरित नहीं है शुरू करने के लिए ऊपर पॉपिंग है। आपकी आउटलुक सेटिंग्स में यह सूची। आपको मैक्रो पर हस्ताक्षर करना होगा और हस्ताक्षरकर्ता को अपने विश्वसनीय प्रकाशक सूची में इनपुट करना होगा। या दुनिया भर में हस्ताक्षरित मैक्रोज़ की अनुमति दें।