在iphone中发送电子邮件

时间:2010-12-30 09:24:30

标签: iphone-sdk-3.0 xcode3.2

我是iphone的新手。我将实现电子邮件功能。我必须添加联系人,这些联系人将出现在按钮点击事件中。在联系人列表下,我选择了一个联系人,它将被放置在地址文本字段中。我怎么能这样做?

任何人都可以给我发送示例代码吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用此代码肯定会有效,

-(IBAction)send{
[self callMailComposer];
}

-(void)callMailComposer{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
    // We must always check whether the current device is configured for     sending emails
    if ([mailClass canSendMail])
        [self displayComposerSheet];
    else
        [self launchMailAppOnDevice];
}

else
{
    [self launchMailAppOnDevice];
}
}

pragma mark -

pragma mark撰写邮件

pragma mark

// Displays an email composition interface inside the application. Populates all the Mail fields. 

 -(void)displayComposerSheet 
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];


picker.mailComposeDelegate = self;
NSString *tosubject =@"";
[picker setSubject:tosubject];


// Set up recipients
[picker setCcRecipients:nil];   
[picker setBccRecipients:nil];

[picker setToRecipients:nil];



[picker setMessageBody:strNewsLink isHTML:NO];

[self presentModalViewController:picker animated:YES];

if(picker) [picker release];
if(picker) picker=nil;

}

// Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation.

  - (void)mailComposeController:(MFMailComposeViewController*)controller                 didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
 {  
//message.hidden = NO;
// Notifies users about errors associated with the interface
switch (result)
{
    case MFMailComposeResultCancelled:
        [UIAlertView showAlertViewWithTitle:@"Canes Crunch" message:@"You have Cancelled of sending e-mail"];

        break;
    case MFMailComposeResultSaved:
        [UIAlertView showAlertViewWithTitle:@"Canes Crunch" message:@"Your e-mail has been saved successfully"];

        break;
    case MFMailComposeResultSent:
        [UIAlertView showAlertViewWithTitle:@"Canes Crunch" message:@"Your e-mail has been sent successfully"];

        break;
    case MFMailComposeResultFailed:
        [UIAlertView showAlertViewWithTitle:@"Canes Crunch" message:@"Failed to send e-mail"];

        break;
    default:
        [UIAlertView showAlertViewWithTitle:@"Canes Crunch" message:@"E-mail Not Sent"];

        break;
}
[self dismissModalViewControllerAnimated:YES];

}

pragma mark

pragma mark解决方法

pragma mark

// Launches the Mail application on the device.
-(void)launchMailAppOnDevice
{

NSString *recipients = @"mailto:?cc=&subject=";
NSString *body = @"&body=";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];

}