में किसी अनुलग्नक के सामग्री प्रकार को संशोधित जब मैं VBScript में किसी ईमेल संदेश में अनुलग्नक के रूप में एक MHTML फाइल जोड़ने की कोशिश, ContentMediaType
गलत तरीके से "message/rfc822"
(RFC 822) पर सेट है। जो मैं समझता हूं, यह माइक्रोसॉफ्ट के अनुसार सही है, लेकिन RFC 2557 के अनुसार गलत है जो कहता है कि यह "multipart/related"
होना चाहिए। यह एक समस्या है, क्योंकि अधिकांश (यदि सभी नहीं) मेल क्लाइंट ईमेल संदेश के रूप में "message/rfc822"
की व्याख्या करते हैं। चूंकि फ़ाइल एक्सटेंशन ".mht"
और ".mhtml"
ईमेल संदेश के किसी भी वैध फ़ाइल एक्सटेंशन से मेल नहीं खाते हैं, इसलिए मेल क्लाइंट फ़ाइल नाम पर ".msg"
, ".eml"
आदि में से एक को जोड़ता है। जब कोई उपयोगकर्ता अनुलग्नक खोलता है, तो यह एक ईमेल संदेश के रूप में खुलता है और एक एमएचटीएम फ़ाइल के बाद से सही तरीके से प्रदर्शित नहीं होता है और एक ईमेल संदेश अलग-अलग सहेजे जाते हैं।एक CDO.Message वस्तु
Sub SendEmail(FromAddress, ToAddress, Subject, Body, Attachment)
Call Err.Clear
On Error Resume Next
Schema = "http://schemas.microsoft.com/cdo/configuration/"
Set Configuration = Sys.OleObject("CDO.Configuration")
Configuration.Fields.Item(Schema + "sendusing") = 2
Configuration.Fields.Item(Schema + "smtpserver") = SMTPServer
Configuration.Fields.Item(Schema + "smtpserverport") = 25
Configuration.Fields.Item(Schema + "smtpauthenticate") = 1
' Configuration.Fields.Item(schema + "sendusername") = ""
' Configuration.Fields.Item(schema + "sendpassword") = ""
Call Configuration.Fields.Update
Set Message = Sys.OleObject("CDO.Message")
Set Message.Configuration = Configuration
Message.From = FromAddress
Message.To = ToAddress
Message.Subject = Subject
Message.HTMLBody = Body
If Not IsEmpty(Attachment) Then
'CDO.Message.AddAttachment doesn't set the correct content media type for an MHTML file.
Call Message.AddAttachment(Attachment)
End If
Call Message.Send
End Sub
मुझे इस कोड चलाने के लिए, Message.Attachments.Item(1).ContentMediaType
"message/rfc822"
को तैयार है। ".mht"
या ".mhtml"
(केस-असंवेदनशील) के साथ Attachment
(एक स्ट्रिंग) समाप्त होने पर मुझे "multipart/related"
होने की आवश्यकता है। मैं इसे निम्नलिखित कोड के साथ कर सकता हूं।
If Len(Attachment) >= 4 And InStr(Len(Attachment) - 3, Attachment, ".mht", vbTextCompare) Or Len(Attachment) >= 4 And InStr(Len(Attachment) - 5, Attachment, ".mhtml", vbTextCompare) Then
Message.Attachments.Item(1).ContentMediaType = "multipart/related"
End If
किसी अज्ञात कारण से, इस Message.Attachments
से लगाव undefines।
मैंने these instructions प्रति संलग्नक मैन्युअल रूप से जोड़ना देखा है, लेकिन जब मैं Message.Attachments.Item(1).Fields.Update
पर कॉल करता हूं, तो ऑब्जेक्ट अपरिभाषित हो जाता है। मुझे लगता है कि अनुलग्नक के ContentMediaType
को सेट करना, स्पष्ट रूप से इसे Fields
की Update
विधि का आह्वान करता है जो मुझे लगता है कि यह अप्रत्याशित व्यवहार के लिए ज़िम्मेदार है।
उचित फ़ाइल एक्सटेंशन को बनाए रखते हुए मैं "multipart/related"
सामग्री प्रकार के साथ एमएमटीएम फ़ाइल कैसे प्राप्त कर सकता हूं?
@IlyaKurnosov, मैंने माइक्रोसॉफ्ट आउटलुक 2010, ऐप्पल मेल (आईफोन पर), और मेरे वेब क्लाइंट (एक्सचेंज) की कोशिश की है। –
संभावित रूप से संबंधित: http://stackoverflow.com/questions/31250/content-type-for-mht-files –