iOS/IPhone Programming Examples

ChilkatHOMEAndroid™Classic ASPCC++C#C# WinRTDelphi ActiveXDelphi DLLVisual FoxProJavaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerShellPythonRubySQL ServerUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET WinRTVBScript

iOS/IPhone Examples

Bounced Email
Digital Certificates
Digital Signatures
DKIM / DomainKey
DSA
Email Object
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
POP3
RSA
MIME
SMTP
Socket
SOCKS Proxy
Spider
SSH Key
SSH
SFTP
Tar
Upload
XML
XMP
Zip


More Examples...
Amazon S3
NTLM
RSS
Atom
PPMD
Deflate
Bzip2
LZW
Diffie-Hellman
Bz2
Character Encoding
CSV

 

 

 

 

 

 

 

 

(IOS) POP3 Read S/MIME Encrypted Email

Read S/MIME encrypted email.

Chilkat iOS Objective-C Libraries

Chilkat iOS C/C++ Libraries

NSMutableString *strOutput = [NSMutableString stringWithCapacity:1000];

//  The mailman object is used for receiving (POP3)
//  and sending (SMTP) email.
CkoMailMan *mailman = [[[CkoMailMan alloc] init] autorelease];

//  Any string argument automatically begins the 30-day trial.
BOOL success;
success = [mailman UnlockComponent: @"30-day trial"];
if (success != YES) {
    [strOutput appendString: mailman.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  Set the POP3 server's hostname
mailman.MailHost = @"mail.chilkatsoft.com";

//  Set the POP3 login/password.
mailman.PopUsername = @"myLogin";
mailman.PopPassword = @"myPassword";

//  If running on Microsoft Windows, the Chilkat mailman
//  will automatically search the registry-based certificate stores
//  for matching certificates and private keys required for
//  decryption.  However, on Linux, MAX OS X, and other
//  operating systems, no such thing exists.  Therefore, you'll
//  need to specify one or more PFX (.p12 / .pfx) files as
//  sources for locating the certs required for decyrption.
success = [mailman AddPfxSourceFile: @"/pfxFiles/certs_and_keys_1.pfx" password: @"pfxPassword1"];
if (success != YES) {
    [strOutput appendString: mailman.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

success = [mailman AddPfxSourceFile: @"/pfxFiles/certs_and_keys_2.pfx" password: @"pfxPassword2"];
if (success != YES) {
    [strOutput appendString: mailman.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  ...
//  Note: On MS Windows, it is not required to provide PFX sources
//  if the needed certs and private keys are already installed
//  on the system (in the registry-based certificate stores).

CkoEmailBundle *bundle;
//  Copy the all email from the user's POP3 mailbox
//  into a bundle object.  The email remains on the server.
bundle = [mailman CopyMail];
if (bundle == nil ) {
    [strOutput appendString: mailman.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  S/MIME security envelopes are automatically "unwrapped"
//  when a message is retrieved from the server. Signed emails are automatically verified, and
//  encrypted emails are automatically decrypted, restoring the email to the original state before
//  signing and/or encrypting. Information about the signing and encrypting certificates can be
//  retrieved from the Email object (methods: GetSignedByCert, GetEncryptedByCert;
//  properties: SignedBy, EncryptedBy, SignaturesValid, Decrypted, ReceivedSigned,
//  ReceivedEncrypted).

//  Loop over the bundle,
int i;
for (i = 0; i <= [bundle.MessageCount intValue] - 1; i++) {
    CkoEmail *email;
    email = [bundle GetEmail: [NSNumber numberWithInt: i]];

    [strOutput appendString: email.From];
    [strOutput appendString: @"\n"];
    [strOutput appendString: email.Subject];
    [strOutput appendString: @"\n"];

    //  At this point, if the email was signed and/or encrypted, it is already "unwrapped", i.e.
    //  the email is already decrypted and in a state as if it were never signed or encrypted.
    //  You may check to see if the email was received encrypted or signed, and if so,
    //  whether it was successfully unwrapped and who signed or encrypted it:
    if (email.ReceivedEncrypted == YES) {

        [strOutput appendString: @"This email was encrypted when received."];
        [strOutput appendString: @"\n"];
        if (email.Decrypted == YES) {
            [strOutput appendString: @"This email was successfully decrypted.  It was encrypted by:"];
            [strOutput appendString: @"\n"];
            [strOutput appendString: email.EncryptedBy];
            [strOutput appendString: @"\n"];
        }
        else {
            [strOutput appendString: @"This email was not decrypted."];
            [strOutput appendString: @"\n"];
        }

    }

    if (email.ReceivedSigned == YES) {

        [strOutput appendString: @"This email was signed when received."];
        [strOutput appendString: @"\n"];
        if (email.SignaturesValid == YES) {
            [strOutput appendString: @"The signature was verified.  It was signed by:"];
            [strOutput appendString: @"\n"];
            [strOutput appendString: email.SignedBy];
            [strOutput appendString: @"\n"];
        }
        else {
            [strOutput appendString: @"The signature verification failed."];
            [strOutput appendString: @"\n"];
        }

    }

    //  The email's body, HTML body, attachments, etc.
    //  are decrypted and available just like any non-encrypted email.

    [strOutput appendString: @"--"];
    [strOutput appendString: @"\n"];

}



self.mainTextField.stringValue = strOutput;



© 2000-2013 Chilkat Software, Inc. All Rights Reserved.