S/MIME الجزء 2: تم التوقيع والختم والإرسال عبر SparkPost

البريد الإلكتروني

1 min read

S/MIME الجزء 2: تم التوقيع والختم والإرسال عبر SparkPost

البريد الإلكتروني

1 min read

S/MIME الجزء 2: تم التوقيع والختم والإرسال عبر SparkPost

في الجزء الأول، قمنا بجولة سريعة في S/MIME، حيث نظرنا في توقيع وتشفير تدفقات الرسائل الخاصة بنا عبر مجموعة من عملاء البريد. يمكن توقيع رسائل S/MIME (مما يثبت هوية المرسل)، تشفيرها (للحفاظ على سرية محتوى الرسالة)، أو كلاهما.

Diagram illustrating email security layers showing the relationship between S/MIME signing, S/MIME encryption, and TLS connections in the email delivery process from message source through email server to recipient.

في هذه القسط، سنقوم ب:

  • تثبيت بعض الأدوات البسيطة لواجهة الأوامر لتوقيع وتشفير البريد الإلكتروني

  • الحصول على مفتاح / شهادة المرسل لتوقيع البريد

  • إرسال رسالة موقعة عبر SparkPost، وننظر في الرسالة المستلمة

  • اختياريًا، الحصول على شهادة المستلم للتشفير

  • إرسال رسالة موقعة ومشفرة عبر SparkPost، والنظر في الرسالة المستلمة

  • تجربة أداة مستقلة مفيدة "mimeshow" لفحص داخليات ملف البريد الإلكتروني.

حسنًا – لنبدأ!

1. قم بتثبيت الأدوات

أدوات العرض التوضيحي موجودة في Github هنا، مع تعليمات التثبيت الكاملة. قد تلاحظ شعار “build passing” – يقوم Travis و pytest بالتحقق تلقائيًا من حالة البناء. لاحظ أن هذه الأدوات غير مدعومة رسميًا من قبل SparkPost، لكنني حاولت جعلها قوية وسهلة الاستخدام.

إذا كان لديك بعض المعرفة بـ Python و pip، يجب أن يكون التثبيت مألوفًا نوعًا ما. يقوم Pipfile بمعالجة الاعتماديات الخارجية تلقائيًا لك. بمجرد الانتهاء، يمكنك التحقق من أن كل شيء تم تثبيته بتشغيل

./sparkpostSMIME.py -h

يجب أن ترى نص المساعدة الودي. بعد ذلك، نحتاج إلى...

2. احصل على مفتاح المرسل / الشهادة للتوقيع

إذا كان لديك بالفعل ملف مفتاح لهوية الإرسال الخاصة بك، يمكنك التقدم للأمام. وإلا فإليك خيارين للاختيار من بينهما:

أ) مفتاح / شهادة اختبار موقعة ذاتيًا (غير صالح خارجيًا)

إذا كنت تقوم بالتجربة فقط، يمكنك إنشاء شهادات ومفاتيح “موقعة ذاتيًا” لعنوان بريد إلكتروني باستخدام أداة سطر الأوامر openssl على نظام Linux، باتباع إجراء مثل هذا الإجراء. في نهاية تلك العملية، ستحصل على ملف smime.p12. قم بإعادة تسمية هذا الملف ليتوافق مع هوية الإرسال الخاصة بك، بما في ذلك علامة @، على سبيل المثال، alice@example.com.p12

أو

ب) مفاتيح / شهادات صالحة خارجيًا

إذا كنت ترغب في الحصول على مفاتيح / شهادات صالحة خارجيًا تتيح لك التوقيع، هناك قائمة بمقدمي الخدمة هنا. وجدت أن Comodo يعمل جيدًا (مجانًا للاستخدام غير التجاري)، وهو أسهل من الإجراء الموقّع ذاتيًا أعلاه. تابع عملية التسجيل، استلم بريد التحقق الخاص بك، وتأكد من فتح الرابط في Firefox. اذهب إلى تفضيلات Firefox / الخصوصية والأمان. انتقل إلى الشهادات / عرض الشهادات:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


حدد شهادتك، واستخدم خيار “النسخ الاحتياطي” للحفظ كملف بتنسيق PKCS12 (أضف الامتداد .p12 إلى اسم الملف) الذي يحمل المفتاح الخاص وسلسلة الشهادات العامة.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


قم بتوفير كلمة مرور لتأمين ملف .p12:

Certificate backup password entry dialog with password fields and strength meter


إنشاء ملفات مفتاح عامة (.crt) وخاصة (.pem) منفصلة

سواء استخدمت الخيار أ) أو ب)، سيكون لديك الآن ملف .p12 لهوية المرسل الخاصة بك. وهذا خطوة كبيرة إلى الأمام – اشرب فنجانًا من القهوة الآن!

نحتاج الآن إلى إنشاء ملفات مفتاح عامة وخاصة منفصلة مثل هذه – استبدل عنوان البريد الإلكتروني الخاص بك بالعنوان الموجود في المثال. (Mac OSX و Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

ستحتاج إلى إدخال كلمة المرور التي قمت بتقديمها سابقًا. لاحظ أن الشرطة المائلة للخلف \ تستخدم لتهرب علامة @ – وليس لفصل أسماء مسار الدليل (وهو الشرطة المائلة للأمام / على Mac OSX و Linux).

إذا كنت تستخدم ويندوز، هناك تطبيقات openssl متاحة مثل MINGW64 المدمجة مع أدوات سطر الأوامر لـ Git، لكنني وجدت أنها تميل إلى التعليق. من المحتمل أن تجد الأمر أسهل وأسرع على Linux ثم نسخ ملفاتك. تأتي نفس أدوات Git لويندوز مع عميل ssh جيد يمكنك استخدامه لتسجيل الدخول إلى جهاز Linux، مثل مثيل Amazon EC2.


2.1 توقيع رسالة

هناك بالفعل ملف مفتاح / شهادة وهمي وملف مصدر بريد إلكتروني في دليل الاختبارات لـ alice@example.com، لذلك يمكنك الحصول على بعض المخرجات حتى قبل أن تحصل على مفاتيحك الخاصة. فقط اكتب التالي:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

وستحصل على:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

لا يمكنك بالفعل إرسال رسائل بريد إلكتروني من example.com عبر SparkPost إلا إذا كنت تملك ذلك النطاق، لذا فإن الخطوة التالية هي استخدام مفتاحك الخاص وإرسال رسالة موقعة من نطاقك الخاص.

إذا كان لديك بالفعل ملف مفتاح لهوية الإرسال الخاصة بك، يمكنك التقدم للأمام. وإلا فإليك خيارين للاختيار من بينهما:

أ) مفتاح / شهادة اختبار موقعة ذاتيًا (غير صالح خارجيًا)

إذا كنت تقوم بالتجربة فقط، يمكنك إنشاء شهادات ومفاتيح “موقعة ذاتيًا” لعنوان بريد إلكتروني باستخدام أداة سطر الأوامر openssl على نظام Linux، باتباع إجراء مثل هذا الإجراء. في نهاية تلك العملية، ستحصل على ملف smime.p12. قم بإعادة تسمية هذا الملف ليتوافق مع هوية الإرسال الخاصة بك، بما في ذلك علامة @، على سبيل المثال، alice@example.com.p12

أو

ب) مفاتيح / شهادات صالحة خارجيًا

إذا كنت ترغب في الحصول على مفاتيح / شهادات صالحة خارجيًا تتيح لك التوقيع، هناك قائمة بمقدمي الخدمة هنا. وجدت أن Comodo يعمل جيدًا (مجانًا للاستخدام غير التجاري)، وهو أسهل من الإجراء الموقّع ذاتيًا أعلاه. تابع عملية التسجيل، استلم بريد التحقق الخاص بك، وتأكد من فتح الرابط في Firefox. اذهب إلى تفضيلات Firefox / الخصوصية والأمان. انتقل إلى الشهادات / عرض الشهادات:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


حدد شهادتك، واستخدم خيار “النسخ الاحتياطي” للحفظ كملف بتنسيق PKCS12 (أضف الامتداد .p12 إلى اسم الملف) الذي يحمل المفتاح الخاص وسلسلة الشهادات العامة.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


قم بتوفير كلمة مرور لتأمين ملف .p12:

Certificate backup password entry dialog with password fields and strength meter


إنشاء ملفات مفتاح عامة (.crt) وخاصة (.pem) منفصلة

سواء استخدمت الخيار أ) أو ب)، سيكون لديك الآن ملف .p12 لهوية المرسل الخاصة بك. وهذا خطوة كبيرة إلى الأمام – اشرب فنجانًا من القهوة الآن!

نحتاج الآن إلى إنشاء ملفات مفتاح عامة وخاصة منفصلة مثل هذه – استبدل عنوان البريد الإلكتروني الخاص بك بالعنوان الموجود في المثال. (Mac OSX و Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

ستحتاج إلى إدخال كلمة المرور التي قمت بتقديمها سابقًا. لاحظ أن الشرطة المائلة للخلف \ تستخدم لتهرب علامة @ – وليس لفصل أسماء مسار الدليل (وهو الشرطة المائلة للأمام / على Mac OSX و Linux).

إذا كنت تستخدم ويندوز، هناك تطبيقات openssl متاحة مثل MINGW64 المدمجة مع أدوات سطر الأوامر لـ Git، لكنني وجدت أنها تميل إلى التعليق. من المحتمل أن تجد الأمر أسهل وأسرع على Linux ثم نسخ ملفاتك. تأتي نفس أدوات Git لويندوز مع عميل ssh جيد يمكنك استخدامه لتسجيل الدخول إلى جهاز Linux، مثل مثيل Amazon EC2.


2.1 توقيع رسالة

هناك بالفعل ملف مفتاح / شهادة وهمي وملف مصدر بريد إلكتروني في دليل الاختبارات لـ alice@example.com، لذلك يمكنك الحصول على بعض المخرجات حتى قبل أن تحصل على مفاتيحك الخاصة. فقط اكتب التالي:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

وستحصل على:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

لا يمكنك بالفعل إرسال رسائل بريد إلكتروني من example.com عبر SparkPost إلا إذا كنت تملك ذلك النطاق، لذا فإن الخطوة التالية هي استخدام مفتاحك الخاص وإرسال رسالة موقعة من نطاقك الخاص.

إذا كان لديك بالفعل ملف مفتاح لهوية الإرسال الخاصة بك، يمكنك التقدم للأمام. وإلا فإليك خيارين للاختيار من بينهما:

أ) مفتاح / شهادة اختبار موقعة ذاتيًا (غير صالح خارجيًا)

إذا كنت تقوم بالتجربة فقط، يمكنك إنشاء شهادات ومفاتيح “موقعة ذاتيًا” لعنوان بريد إلكتروني باستخدام أداة سطر الأوامر openssl على نظام Linux، باتباع إجراء مثل هذا الإجراء. في نهاية تلك العملية، ستحصل على ملف smime.p12. قم بإعادة تسمية هذا الملف ليتوافق مع هوية الإرسال الخاصة بك، بما في ذلك علامة @، على سبيل المثال، alice@example.com.p12

أو

ب) مفاتيح / شهادات صالحة خارجيًا

إذا كنت ترغب في الحصول على مفاتيح / شهادات صالحة خارجيًا تتيح لك التوقيع، هناك قائمة بمقدمي الخدمة هنا. وجدت أن Comodo يعمل جيدًا (مجانًا للاستخدام غير التجاري)، وهو أسهل من الإجراء الموقّع ذاتيًا أعلاه. تابع عملية التسجيل، استلم بريد التحقق الخاص بك، وتأكد من فتح الرابط في Firefox. اذهب إلى تفضيلات Firefox / الخصوصية والأمان. انتقل إلى الشهادات / عرض الشهادات:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


حدد شهادتك، واستخدم خيار “النسخ الاحتياطي” للحفظ كملف بتنسيق PKCS12 (أضف الامتداد .p12 إلى اسم الملف) الذي يحمل المفتاح الخاص وسلسلة الشهادات العامة.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


قم بتوفير كلمة مرور لتأمين ملف .p12:

Certificate backup password entry dialog with password fields and strength meter


إنشاء ملفات مفتاح عامة (.crt) وخاصة (.pem) منفصلة

سواء استخدمت الخيار أ) أو ب)، سيكون لديك الآن ملف .p12 لهوية المرسل الخاصة بك. وهذا خطوة كبيرة إلى الأمام – اشرب فنجانًا من القهوة الآن!

نحتاج الآن إلى إنشاء ملفات مفتاح عامة وخاصة منفصلة مثل هذه – استبدل عنوان البريد الإلكتروني الخاص بك بالعنوان الموجود في المثال. (Mac OSX و Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

ستحتاج إلى إدخال كلمة المرور التي قمت بتقديمها سابقًا. لاحظ أن الشرطة المائلة للخلف \ تستخدم لتهرب علامة @ – وليس لفصل أسماء مسار الدليل (وهو الشرطة المائلة للأمام / على Mac OSX و Linux).

إذا كنت تستخدم ويندوز، هناك تطبيقات openssl متاحة مثل MINGW64 المدمجة مع أدوات سطر الأوامر لـ Git، لكنني وجدت أنها تميل إلى التعليق. من المحتمل أن تجد الأمر أسهل وأسرع على Linux ثم نسخ ملفاتك. تأتي نفس أدوات Git لويندوز مع عميل ssh جيد يمكنك استخدامه لتسجيل الدخول إلى جهاز Linux، مثل مثيل Amazon EC2.


2.1 توقيع رسالة

هناك بالفعل ملف مفتاح / شهادة وهمي وملف مصدر بريد إلكتروني في دليل الاختبارات لـ alice@example.com، لذلك يمكنك الحصول على بعض المخرجات حتى قبل أن تحصل على مفاتيحك الخاصة. فقط اكتب التالي:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

وستحصل على:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

لا يمكنك بالفعل إرسال رسائل بريد إلكتروني من example.com عبر SparkPost إلا إذا كنت تملك ذلك النطاق، لذا فإن الخطوة التالية هي استخدام مفتاحك الخاص وإرسال رسالة موقعة من نطاقك الخاص.

3. أرسل رسالة موقعة عبر SparkPost

الآن دعنا نستخدم نطاق إرسال حقيقي، تم إعداده وفقًا لدليل مستخدم SparkPost الجديد. لدينا شهادة المرسل وملفات المفتاح في الدليل الحالي:

steve@thetucks.com.crt steve@thetucks.com.pem

الملف tests/declaration.eml موجود في المشروع. إنه مجرد ملف نصي، لذا يمكنك تخصيص عنوان From: ليتوافق مع نطاق الإرسال الخاص بك وعنوان To: ليتوافق مع المستلم الذي تختبر معه. يبدو بداية الملف هكذا:

To: Bob <bob.lumreeker@gmail.com> From: Steve <steve@thetucks.com> Subject: هنا تصريحنا MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB عندما يصبح من الضروري في مجرى الأحداث البشرية أن ...

قم بتعيين مفتاح API الخاص بك:

export SPARKPOST_API_KEY=<<ضع مفتاح API الخاص بك هنا>>

أرسل البريد الإلكتروني:

./sparkpostSMIME.py tests/declaration.eml --sign --send_api

سترى:

تم فتح الاتصال بـ https://api.sparkpost.com/api/v1 جاري إرسال tests/declaration.eml From: Steve <steve@thetucks.com> To: Bob  <bob.lumreeker@gmail.com> موافق - في 1.15 ثانية

بعد ثوانٍ قليلة، يصل البريد الإلكتروني إلى صندوق بريد Bob. يعرضه Thunderbird بنقطة حمراء على الظرف، مما يشير إلى توقيع المرسل صالح.

Thunderbird email inbox showing an email with a subject 'Here is our declaration'

نجاح! انتهي من القهوة، لقد استحقيتها. إذا كنت تواجه مشكلة، تحقق من أن عنوان From: في ملف البريد الإلكتروني يتطابق مع اسم ملفات .crt و.pem الخاصة بك.

4. تشفير الرسائل

لتشفير رسالة، تحتاج إلى المفتاح العام للمستلم بصيغة الشهادة. هذا هو ملف نصي يبدو هكذا:

سمات الحزمة   friendlyName: s COMODO CA Limited ID #2   localKeyID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 subject=/emailAddress=bob.lumreeker@gmail.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- يبدو وكأنه أحرف عشوائية هنا -----END CERTIFICATE-----

هناك شهادة مستلم وهمي لbob@example.com في دليل الاختبارات، لذا يمكنك التدرب معها قبل أن تحصل على شهادة حقيقية:

cd tests ../sparkpostSMIME.py example_email1.eml --sign --encrypt

سترى:

To: Bob <bob@example.com>
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=smime.p7m MIIRwQYJKoZIhvcNAQcDoIIRsjCCEa4CAQAxggKlMIICoQIBADCBijCBhDELMAkG :

ستلاحظ أن طول الإخراج أطول بكثير منه في رسالة مشفرة لأنه يحمل الكثير من المعلومات الإضافية بالإضافة إلى الرسالة المشفرة نفسها.


4.1 إرسال رسالة مشفرة وموقعة عبر SparkPost

لنرسل رسالة مشفرة إلى عنوان بريد إلكتروني حقيقي. يمكنك اتباع نفس العملية كما سبق (توقيع ذاتي أو مزود مثل Comodo) للحصول على مفتاح عام / شهادة لعناوين المستلمين الخاصة بك. تحتاج فقط إلى ملف .crt - المستلم لا يحتاج أبداً لإعطائك مفتاحه الخاص (.p12 و .pem الملفات).

لدي الملف bob.lumreeker@gmail.com.crt للمستلم المقصود – مطابق لعنوان From في ملفي.

هنا الأمر للإرسال:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt --send_api

أرى:

تم فتح اتصال مع https://api.sparkpost.com/api/v1 إرسال tests/declaration.eml من: Steve <steve@thetucks.com> إلى: Bob <bob.lumreeker@gmail.com> OK - في 1.168 ثانية

تظهر الرسالة في Thunderbird مع أيقونة التوقيع "النقطة الحمراء" وأيقونة التشفير "القفل".

Thunderbird email view with signature and encryption icons

يمكنك إرسال بريد إلكتروني معقد معتمد على HTML يحتوي على روابط وصور بنفس السهولة، مثل الذي شوهد في الجزء 1. بعض العملاء مثل Thunderbird يطلبون إذنًا لعرض الروابط والصور الخارجية داخل رسائل S/MIME المشفرة، ولكن الرسائل الموقعة فقط تعرض بشكل جيد في العملاء بما في ذلك Thunderbird و Gmail:

Avocado marketing email with guacamole in a blue bowl and product order sectionsGmail interface showing an HTML email with guacamole image and Avocado marketing content

لاحظ أن القائمة المنسدلة تعرض "عنوان البريد الإلكتروني تم التحقق منه".

أفكار أخرى وأشياء يجب الانتباه إليها

تأخذ هذه الأداة نهجًا بسيطًا للغاية في جمع المفاتيح الضرورية - فهي تقوم فقط بالبحث عن الملفات المسماة في الدليل الحالي. يمكن بسهولة إضافة ترتيبات أكثر تعقيدًا، مثل حفظ جميع المفاتيح في قاعدة بيانات، لكنني أردت أن يكون الكود بسيطًا قدر الإمكان.

يمكنك تضمين مستلمين آخرين باستخدام Cc: و Bcc: وسيتم تسليمهم؛ قد يكون هذا مفيدًا لأغراض الأرشفة. الرسائل الموقعة يتم استلامها ويمكن عرضها بواسطة مستلمين آخرين كاملة مع التوقيع. تقوم الأداة بإزالة ترويسة Bcc: من الرسالة التي يتم تسليمها (مثلما يفعل عميل البريد الإلكتروني المكتبي).

لضمان مرور الرسائل من خلال SparkPost دون تغيير (مما قد يفسد التوقيع)، تقوم الأداة بتعيين خيارات API للبريد الإلكتروني "التعاملات"، مع تعطيل تتبع الفتحات والنقرات.

إذا كنت تستخدم التشفير، ضع في اعتبارك أن الأداة تلتقط عنوان To: الوحيد لذلك. يمكن للمستلمين الآخرين فك تشفير نص الرسالة فقط إذا كان لديهم المفتاح الخاص بالمستلم To:. إذا كنت تستخدم المستلمين الثانويين فقط كسجل للتسليمات التي تمت، على سبيل المثال، فقد يكون ذلك مناسبًا على أي حال.

موقعة، مختومة، تم تسليمها... أنا لك

هذا هو ملخصنا السريع حول كيفية توقيع، ختم وإرسال رسائل S/MIME عبر SparkPost. تذكير سريع: يوجد مشروع العرض التجريبي على Github هنا، لقد حاولت جعله سهل التثبيت والاستخدام.

ميزة إضافية: عرض أجزاء MIME باستخدام "mimeshow"

الملفات المتعددة الأجزاء بتنسيق RFC822 MIME معقدة للغاية للقراءة بالنسبة للبشر. يتضمن المشروع أداة مستقلة لتسهيل هذا الأمر، تُسمى mimeshow.

هذه الأداة تأخذ أي ملفات بريد إلكتروني لديك (ليس فقط الخاصة بـ S/MIME) وتظهر الهيكل الداخلي. إليك مثال:

./mimeshow.py testcases/img_and_attachment.eml

سترى:

To Bob <bob.lumreeker@gmail.com>
From Steve <steve@thetucks.com> 
Subject Testing attachments etc 
MIME-Version 1.0
Content-Type multipart/mixed; boundary="------------7D48652042860D0098C65210"
Content-Language en-GB
Content-Type multipart/alternative; boundary="------------58C0BF87598336550D70EB95" 
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Content-Transfer-Encoding quoted-printable 
Content-Type text/html; charset="utf-8"
Content-Type application/pdf; name="sparkpost-datasheet-tam-technical-account-management.pdf" 
Content-Transfer-Encoding base64
Content-Disposition attachment; filename="sparkpost-datasheet-tam-technical-account-management.pdf"

يمكنك أيضًا استخدامها كعامل تصفية لتقديم ملخص يمكن قراءته من قبل البشر لإخراج sparkpostSMIME:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt | ./mimeshow.py


سترى:

To Bob <bob.lumreeker@gmail.com>  
From Steve <steve@thetucks.com>
Subject Here is our declaration 
Content-Language en-GB
MIME-Version 1.0
Content-Type application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Content-Transfer-Encoding base64
Content-Disposition attachment; filename=smime.p7m

أخيرًا...

لتلخيص - لقد قمنا بتثبيت بعض الأدوات البسيطة لسطر الأوامر لتوقيع وتشفير البريد الإلكتروني (مستودع Github موجود هنا، مع تعليمات التثبيت الكاملة).

لقد حصلنا على مفتاح المرسل / الشهادة للتوقيع، وأرسلنا رسالة موقعة عبر SparkPost. حصلنا على شهادة المستلم للتشفير، ثم أرسلنا رسالة موقعة ومشفرة عبر SparkPost.

أخيرًا، جربنا الأداة المستقلة المفيدة "mimeshow" للنظر في مكونات ملف البريد الإلكتروني الداخلية.

هذا كل شيء في الوقت الحالي! أراكم قريبًا!

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

R

وصول

G

نمو

م

إدارة

A

أتمتة

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.