asp.net - एक मौजूदा Outlook कैलेंडर में आयात करने के लिए कई VEVENTs के साथ एक.ICS फ़ाइल कैसे बनाएं




calendar icalendar (5)

मुझे उपयोगकर्ता को किसी ऐसी घटना को डाउनलोड करने की अनुमति देने की ज़रूरत है जिसमें एकाधिक मीटिंग तिथियां हैं। ऐसा करने के लिए मैंने एक मेमोरीस्ट्रीम डाउनलोड किया है जो कि एक .ics फ़ाइल उत्पन्न करता है। उदाहरण के लिए:

BEGIN:VCALENDAR
PRODID:-//Company//Product//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Subject of Event
LOCATION:Location of Event
UID:[email protected]
DESCRIPTION:Some description
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
PRIORITY:3
END:VEVENT
BEGIN:VEVENT
  ...
END:VEVENT
END:VCALENDAR

अगर मैं इस फ़ाइल में केवल एक वीईएनएनटी शामिल करता हूँ तो वह इसे मेरे मौजूदा Outlook कैलेंडर में सहेज लेगा। हालांकि, जब मेरे पास बहुत से VEVENTs हैं, तो वह इसे एक नया कैलेंडर के रूप में खोलना चाहता है और इसे "अन्य कैलेंडर" के अंतर्गत फाइल करना चाहता है।

क्या कोई तरीका है (फ़ाइल का उपयोग किए बिना - आउटलुक के भीतर से आयात) यह निर्दिष्ट करने के लिए कि कैलेंडर को स्वचालित रूप से चालू कैलेंडर में आयात किया जाना चाहिए, जब खोला गया?

अद्यतन: स्पष्ट करने के लिए, प्रत्येक VEVENT एक "अपॉइंटमेंट" से संबंधित है हालांकि एक आवर्ती पैटर्न हो सकता है या नहीं हो सकता है।

-माइक


Answers

मुझे नहीं लगता कि यह काम करेगा। उन "खुले" ऐनक को आयात करने में आउटलुक सीमित है मुझे कई संपर्कों के साथ एक vCard फ़ाइल आयात करने की कोशिश में एक समान समस्या थी मैंने फ़ाइल को विभाजित करना समाप्त कर दिया और एक फाइल में सभी फाइलों को आयात करने के लिए आउटलुक में एक स्क्रिप्ट लिखना समाप्त कर दिया।


सुनिश्चित करें कि आप प्रत्येक VEVENT के लिए एक अद्वितीय यूआईडी का उपयोग कर रहे हैं। यदि आप प्रत्येक VEVENT के लिए एक ही यूआईडी का प्रयोग करते हैं, तो आप बिल्कुल वही व्यवहार देखेंगे जो आप वर्णन कर रहे हैं क्योंकि केवल अद्वितीय यूआईडी प्रक्रिया और कैलेंडर में जोड़ा जाता है।

HTH।


यह दृष्टिकोण पर तीन फीफा 2010 मैच का एक उदाहरण है, मैं अनुमान लगाता हूं कि यह वही है जो आप चाहते हैं ...

BEGIN:VCALENDAR

PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN

VERSION:2.0

METHOD:PUBLISH

X-CALSTART:20100611T140000Z

X-CALEND:20100711T201500Z

X-WR-RELCALID:{0000002E-5A22-AA75-713B-5C3715764495}

X-WR-CALNAME: World Cup Football Complete Match Schedule 2010 South Africa

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100611T154500Z

DTSTAMP:20100513T100200Z

DTSTART:20100611T140000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Johannesburg 

PRIORITY:5

SEQUENCE:0

SUMMARY:South Africa - Mexico

TRANSP:TRANSPARENT

UID:[email protected].com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group A\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100611T201500Z

DTSTAMP:20100513T100200Z

DTSTART:20100611T183000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Cape Town 

PRIORITY:5

SEQUENCE:0

SUMMARY:Uruguay - France

TRANSP:TRANSPARENT

UID:[email protected].com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

BEGIN:VEVENT

CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa

CLASS:PUBLIC

CREATED:20100608T231102Z

DESCRIPTION:Group B\nFollow MarkThisDate on Twitter

    markthisdate 

DTEND:20100612T131500Z

DTSTAMP:20100513T100200Z

DTSTART:20100612T113000Z

LAST-MODIFIED:20100608T231102Z

LOCATION:Nelson Mandela Bay/Port Elizabeth 

PRIORITY:5

SEQUENCE:0

SUMMARY:Korea Republic - Greece

TRANSP:TRANSPARENT

UID:[email protected].com

X-MICROSOFT-CDO-BUSYSTATUS:FREE

X-MICROSOFT-CDO-IMPORTANCE:1

END:VEVENT

END:VCALENDAR

यह संभव होना चाहिए: / Google के साथ निम्नलिखित काम करता है, और निकास में लोड ठीक है। हालांकि आउटलुक में कुछ मुद्दे हैं, हालांकि, इनकी तलाश जारी रखेंगे

नोट - जब आप फ़ाइल> आयात आदि का उपयोग करते हैं तो यह सही तरीके से आयात करता है, यह केवल डबल क्लिक करने से कारण है कि यह केवल पहली घटना को लोड करता है।

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Insert something
X-WR-TIMEZONE:Insert something
X-WR-CALDESC:

BEGIN:VEVENT
DTSTART:20110909T180000Z
DTEND:20110909T200000Z
DTSTAMP:20110722T004312Z
UID:[email protected].com
CREATED:20110721T105553Z
DESCRIPTION:
LAST-MODIFIED:20110721T105554Z
LOCATION:Insert something
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT

BEGIN:VEVENT
DTSTART:20110909T083000Z
DTEND:20110909T103000Z
DTSTAMP:20110722T004312Z
UID:[email protected].com
CREATED:20110721T105410Z
DESCRIPTION:
LAST-MODIFIED:20110721T111008Z
LOCATION:Auckland
SEQUENCE:1
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Insert something
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT

END:VCALENDAR

मैं SMTPLIB का उपयोग करके ईमेल भेजना चाहता था, यह आसान है और इसके लिए स्थानीय सेटअप की आवश्यकता नहीं है। अन्य उत्तर के बाद सीधे मददगार नहीं थे, यह वही है जो मैंने किया था।

ब्राउज़र में Outlook खोलें; ऊपरी दाएं कोने पर जाएं, सेटिंग के लिए गियर आइकन पर क्लिक करें, प्रदर्शित होने वाली ड्रॉप-डाउन सूची से 'विकल्प' चुनें। 'अकाउंट्स' पर जाएं, 'पॉप एंड इंपैप' पर क्लिक करें, आपको विकल्प दिखाई देगा: "डिवाइसेस एंड एप्स पॉप का इस्तेमाल करें",

हां विकल्प चुनें और परिवर्तन सहेजें।

यहाँ कोड के बाद यहाँ है; जहां neccesary संपादित करें। सबसे महत्वपूर्ण बात यह है कि पीओपी और यहां सर्वर कोड को सक्षम करना है;

import smtplib

body = 'Subject: Subject Here .\nDear ContactName, \n\n' + 'Email\'s BODY text' + '\nYour :: Signature/Innitials'
try:
    smtpObj = smtplib.SMTP('smtp-mail.outlook.com', 587)
except Exception as e:
    print(e)
    smtpObj = smtplib.SMTP_SSL('smtp-mail.outlook.com', 465)
#type(smtpObj) 
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('[email protected]', "password") 
smtpObj.sendmail('[email protected]', '[email protected]', body) # Or [email protected]

smtpObj.quit()
pass






asp.net outlook calendar icalendar