|
Q: I want to add a feature to my application that allows a user to easily email my technical support address. What's the easiest way to do this?A: The Message framework ( Listing 1: Creating an email message in Cocoa - (IBAction)sendMailCocoa:(id)sender // Create a mail message in the user's preferred mail client // by opening a mailto URL. The extended mailto URL format // is documented by RFC 2368 and is supported by Mail.app // and other modern mail clients. // // This routine's prototype makes it easy to connect it as // the action of a user interface object in Interface Builder. { NSURL * url; // Create the URL. url = [NSURL URLWithString:@"mailto:dts@apple.com" "?subject=Hello%20Cruel%20World!" "&body=Share%20and%20Enjoy" ]; assert(url != nil); // Open the URL. (void) [[NSWorkspace sharedWorkspace] openURL:url]; } Listing 2: Creating an email message in plain C static void SendMailCarbon(void) // Create a mail message in the user's preferred mail client // by opening a mailto URL. The extended mailto URL format // is documented by RFC 2368 and is supported by Mail.app // and other modern mail clients. { OSStatus err; CFURLRef url; static const char kMailtoURL[] = "mailto:dts@apple.com" "?subject=Hello%20Cruel%20World!" "&body=Share%20and%20Enjoy"; url = CFURLCreateWithBytes( NULL, (const UInt8 *) kMailtoURL, sizeof(kMailtoURL), kCFStringEncodingASCII, NULL ); assert(url != NULL); err = LSOpenCFURLRef(url, NULL); assert(err == noErr); CFRelease(url); } Things get more complex if you want to create a message with an attachment. The underlying technology for opening a URL is the Document Revision History
Posted: 2004-11-05 |
|