كيفية إضافة تنازل إلى الرسائل SMTP الصادرة في Visual Basic

للحصول على إصدار Microsoft Visual Basic Scripting Edition من هذه المقالة، راجع 317680 .

مقدمة

توضح هذه المقالة خطوة بخطوة كيفية استخدام مصدر حدث نقل SMTP لإضافة تنازل إلى رسائل البريد الإلكتروني SMTP الصادرة.

إنشاء مصدر الحدث

  1. إنشاء DLL ActiveX Microsoft Visual Basic الجديدة. اسم المشروع سمتبيفينتسينك، ثم قم بتسمية وحدة إخلاء المسؤولية.
  2. ضمن مراجع المشروع، إضافة CDO Microsoft Exchange 2000 المكتبة ثم قم بإضافة "خادم مكتبة COM الكائنات ملحق".
  3. ضع التعليمات البرمجية التالية في الوحدة النمطية:
    Dim TextDisclaimer As StringDim HTMLDisclaimer As String

    Implements IEventIsCacheable
    Implements CDO.ISMTPOnArrival

    Private Sub IEventIsCacheable_IsCacheable()
    'Just returns S_OK.
    End Sub

    Private Sub Class_Initialize()
    'TODO: Replace the sample disclaimer text with your own text.
    TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "Sample Disclaimer Text."
    HTMLDisclaimer = "<p></p><p>DISCLAIMER:<br>Sample Disclaimer Text"
    End Sub

    Private Sub ISMTPOnArrival_OnArrival(ByVal Msg As CDO.IMessage, EventStatus As CDO.CdoEventStatus)
    If Msg.HTMLBody <> "" Then
    Dim szPartI As String
    Dim szPartII As String
    Dim pos As Integer

    'Search for the "</body>" tag and insert the disclaimer before that tag.
    pos = InStr(1, Msg.HTMLBody, "</body>", vbTextCompare)
    szPartI = Left(Msg.HTMLBody, pos - 1)
    szPartII = Right(Msg.HTMLBody, Len(Msg.HTMLBody) - (pos - 1))
    Msg.HTMLBody = szPartI + HTMLDisclaimer + szPartII
    End If

    If Msg.TextBody <> "" Then
    Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
    End If

    'Commit the content changes to the transport ADO Stream object.
    Msg.DataSource.Save
    EventStatus = cdoRunNextSink
    End Sub

  4. استبدال نموذج نص التنصل بالنص التنازلات، وثم ببناء ال DLL.

تسجيل مصدر الحدث

لتسجيل مصدر الحدث، استخدم الملف Smtpreg.vbs الذي تم تثبيته مع تبادل مجموعة تطوير البرامج (SDK).
  1. في موجه الأوامر، حدد موقع المجلد \Exchange SDK\SDK\Support\CDO\Scripts، وثم اكتب ما يلي: cscript smtpreg.vbs/إضافة SMTPEventSink.Disclaimer سمتبديسكليمير أوناريفال 1 "from=*@your-domain-here.com البريد"

    إذا نجح هذا الأمر، تتلقى رسالة نجاح تم إنشاؤه بواسطة البرنامج النصي.
  2. إلغاء تسجيل هذه الأحداث، اكتب ما يلي: cscript smtpreg.vbs/إزالة 1 سمتبديسكليمير أوناريفال
للحصول على معلومات إضافية حول إدارة الروابط الحدث، قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

اختبار مصدر الحدث

لاختبار مصدر الحدث، إرسال رسالة بريد إلكتروني إلى مستلم SMTP هو خارجي بالنسبة للمؤسسة الخاصة بك. يتلقى المستلم رسالة معدلة بنص التنصل المضافة إلى نهاية الرسالة.

ملاحظة: إذا كنت تستخدم عميل MAPI مثل Microsoft Outlook لإرسال رسالة بريد إلكتروني، لا يتلقى المستلم رسالة بريد إلكتروني تم تعديلها. وهذا لأن رسالة البريد الإلكتروني التي تم إرسالها باستخدام MAPI غير بتنسيق SMTP عند تفعل رسالة البريد الإلكتروني أحداث نقل SMTP. ولذلك، لا تستمر التغييرات التي يتم إجراؤها بواسطة التعليمات البرمجية للحدث.

المراجع

للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

273233 لا يمكن تغيير محتويات رسالة MAPI في مصدر حدث CDO SMTP

خصائص

رقم الموضوع: 317327 - آخر مراجعة: 19‏/01‏/2017 - المراجعة: 1

تعليقات