### Server Install Function Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Handles server installation code. Use this to execute installation logic, including handler setup. ```C# function ServerInstall installCode return return & "Procedure InstallHandlers; " & return & Tab & "BEGIN" & return & installCode & Tab & "END; " & return ``` -------------------------------- ### Server Install Handler Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Installs server handlers, returning a string indicating the installation process and potentially executing provided installation code. ```Pascal function ServerInstall installCode: return return & "Procedure InstallHandlers";" & return & Tab & "BEGIN" & return & return & installCode & Tab & Tab & "END;" & return end ServerInstall ``` -------------------------------- ### Server Installation Code Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt This snippet handles server installation based on the provided install code. It's used when the install code is not empty. ```text if installCode <> "" then put ServerInstall(installCode) after consts end if ``` -------------------------------- ### Generate Server Installation Routine Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Wraps provided code into a standard Pascal installation procedure. ```Pascal function ServerInstall installCode return return & "Procedure InstallHandlers;" & return & "" & return & Tab & "BEGIN" & return & installCode & Tab & "END;" & return end ServerInstall ``` -------------------------------- ### Generate Server Installation Routine Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Wraps installation code within a procedure block. ```Pascal ZnVuY3Rpb24gU2VydmVySW5zdGFsbCBpbnN0YWxsQ29kZQ1yZXR1cm4gcmV0dXJuICYg IlByb2NlZHVyZSBJbnN0YWxsSGFuZGxlcnM7IiAmIHJldHVybiANJiBUYWIgJiAiQkVH SU4iICYgcmV0dXJuICYgaW5zdGFsbENvZGUgJiBUYWIgJiAiRU5EOyIgJiByZXR1cm4N ZW5kIFNlcnZlckluc3RhbGw= ``` -------------------------------- ### MimeKit Implementation Example Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/smime/thunderbird-signed.txt Example demonstrating the usage of MimeKit methods for handling MIME data. ```csharp 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 74 ``` -------------------------------- ### Generate Server Constants and Installation Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Utility functions for defining C constants and generating handler installation code. ```AppleScript function ServerConst name,const,commentOut put "#define " & name && const into x if commentOut = "true" then put "/* " & x & " */" into x end if return x end ServerConst function ServerInstall installCode return return & "void InstallHandlers()" & return & "{" & return & installCode & "}" & return end ServerInstall ``` -------------------------------- ### 3DES-EDE Key Wrap Example Source: https://github.com/jstedfast/mimekit/blob/master/rfc/rfc2631.txt Example of the input and output for the first and second invocations of SHA-1 during 3DES-EDE key wrapping. ```text 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ; ZZ 30 1d 30 13 06 0b 2a 86 48 86 f7 0d 01 09 10 03 06 ; 3DES wrap OID 04 04 00 00 00 01 ; Counter a2 06 04 04 00 00 00 c0 ; key length ``` ```text 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 ; ZZ 30 1d 30 13 06 0b 2a 86 48 86 f7 0d 01 09 10 03 06 ; 3DES wrap OID 04 04 00 00 00 02 ; Counter a2 06 04 04 00 00 00 c0 ; key length ``` -------------------------------- ### Main Entry Point and Argument Parsing Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Initializes the application, parses command-line flags, and sets up the environment. ```C main(argc, argv) int argc; char **argv; { int c, i, standout=3D0, underline=3D0, bold=3D0, atstart, negated, ForceTermcap=3D0, ForcePlain=3D0, NotTtyEnv =3D 0, FakeTerminal; char token[MAX_TOKEN_SIZE], *tok, *nottty; char tbuf[1024], *term, *dum; FILE *InputFP =3D stdin, *tmpfp; #ifdef __MSDOS__ int ansi =3D 0; #endif if( RichtextInitialize ) (*RichtextInitialize)(); InitSignals(); dum =3D (char *) getenv("MM_USEPAGER"); if (dum && atoi(dum)) ++UsePager; for (i=3D1; i< argc; ++i) { if (!strcmp(argv[i], "-p")) { ++UsePager; } else if (!strcmp(argv[i],"-c")) { /* Only perform correction: don't format */ JustCorrect =3D 1; } else if (!strcmp(argv[i], "-f")) { /* Force termcap usage */ ForceTermcap =3D 1; } else if (!strcmp(argv[i], "-t")) { /* Force plain text */ ForcePlain =3D 1; } else if (!strcmp(argv[i],"-n")) { /* Disable the richtext correction routines */ CorrectionEnabled =3D 0; #ifdef __MSDOS__ } else if (!strcmp(argv[i], "-a")) { ansi =3D !ansi; #endif } else { /* open for input */ tmpfp =3D fopen(argv[i], "r"); if (tmpfp) InputFP =3D tmpfp; } } ``` -------------------------------- ### Multipart/Related with Application/X-FixedRecord Example Source: https://github.com/jstedfast/mimekit/blob/master/rfc/rfc2112.txt This example demonstrates the structure of a Multipart/Related content-type where the root part is of type Application/X-FixedRecord. It includes the 'start' and 'start-info' parameters, and shows how record lengths are specified in the root part and the data is provided in a subsequent octet-stream part. ```http Content-Type: Multipart/Related; boundary=example-1 start="<950120.aaCC@XIson.com>"; type="Application/X-FixedRecord" start-info="-o ps" --example-1 Content-Type: Application/X-FixedRecord Content-ID: <950120.aaCC@XIson.com> 25 10 34 10 25 21 26 10 --example-1 Content-Type: Application/octet-stream Content-Description: The fixed length records Content-Transfer-Encoding: base64 Content-ID: <950120.aaCB@XIson.com> T2xkIE1hY0RvbmFsZCBoYWQgYSBmYXJtCkUgSS BFIEkgTwpBbmQgb24gaGlzIGZhcm0gaGUgaGFk IHNvbWUgZHVja3MKRSBJIEUgSSBPCldpdGggYS BxdWFjayBxdWFjayBoZXJlLAphIHF1YWNrIHF1 YWNrIHRoZXJlLApldmVyeSB3aGVyZSBhIHF1YW NrIHF1YWNrCkUgSSBFIEkgTwo= --example-1-- ``` -------------------------------- ### Parsing a MIME Message with MimeKit Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/smime/thunderbird-signed.txt This example shows how to parse a MIME message from a stream using MimeKit. Ensure MimeKit is installed. ```csharp using System; using System.IO; using MimeKit; public class MimeParseExample { public static void Main (string[] args) { // Assume 'stream' is an input stream containing the MIME message Stream stream = new MemoryStream (); // Replace with your actual stream var parser = new MimeParser (); var message = parser.Parse (stream); Console.WriteLine ("Subject: " + message.Subject); } } ``` -------------------------------- ### MimeKit Example 1 Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Example code snippet for MimeKit. ```csharp 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 AiIgJD9N+7/AM5Eh+m/d/5y ``` -------------------------------- ### Example 5.2.bin S/MIME Message Source: https://github.com/jstedfast/mimekit/blob/master/rfc/rfc4134.txt This snippet represents another binary example of an S/MIME message. It's a continuation or variation of previous examples and needs S/MIME parsing for understanding. ```bin MIIBZQYJKoZIhvcNAQcDoIIBVjCCAVICAQIxggEAMIG9AgEAMCYwEjEQMA4GA1UEAxMHQ2 ``` -------------------------------- ### Get Instructions Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Provides instructions for using a stack. This is typically triggered by a user action like clicking a button. ```C# on mouseUp ShowBalloon "Click here to get instructions for using this stack." end mouseUp on mouseUp global gWhereFrom push cd pop cd into gWhereFrom go cd "instructions" end mouseUp ``` -------------------------------- ### Create and Send an Email Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/smime/thunderbird-signed.txt Example of constructing a simple email message and sending it using a client. Requires SMTP client configuration. ```C# using MailKit.Net.Smtp; using MimeKit; var message = new MimeMessage (); message.From.Add (new MailboxAddress ("Sender Name", "sender@example.com")); message.To.Add (new MailboxAddress ("Recipient Name", "recipient@example.com")); message.Subject = "Hello world!"; message.Body = new TextPart ("plain") { Text = @"Hello from MimeKit!" }; using (var client = new SmtpClient ()) { client.Connect ("smtp.example.com", 587, false); client.Authenticate ("username", "password"); client.Send (message); client.Disconnect (true); } ``` -------------------------------- ### Print Instructions for Using This Stack Source: https://github.com/jstedfast/mimekit/blob/master/UnitTests/TestData/mbox/jwz.mbox.txt Use this to print instructions for using the current stack. This is typically accessed via mouse interaction. ```swift on mouseYWithin ShowBalloon "Print instructions for using this stack" end mouseYWithin on mouseYUp print "Instructions" end mouseYUp ```