Search code examples
iphoneiosios4mfmailcomposeviewcontroller

Getting the Recepients list in MFMailComposeViewController


I am using MFMailcomposerViewController in my App. Everything is working fine, except that I am in need to Have the no. of recipients and the list of recipients the user is sending to. Any help or solution regarding this issue..


Solution

  • Finally I got the Answer and wanted to share it... I took a great help from [blog]: http://jomnius.blogspot.com/2011/02/how-to-find-mfmailcomposeviewcontroller.html

    for (int x=0; x<[emailArray count]-1; x++) {
    NSLog(@"%d). %@",x+1,[emailArray objectAtIndex:x]);
    NSString *element = [emailArray objectAtIndex:x];
    NSArray *arr = [element componentsSeparatedByString:@" & "];
    if ([arr count]==1) {
        ++emailCount;
    }
    else{
        int more = [[[arr objectAtIndex:1] substringToIndex:1] intValue];
        emailCount+=(more+1);
    }
    }
     - (NSString *)findEmailAddresses:(UIView *)view depth:(NSInteger)count
    {
    NSString *eAddress = nil;
    if (!view)
        return eAddress;
    NSMutableString *tabString = [NSMutableString stringWithCapacity:count];
    for (int i = 0; i < count; i++)
        [tabString appendString:@"-- "];
    NSLog(@"%@%@", tabString, view);
    if ([view isKindOfClass:[UITextField class]])
    {
        // MAGIC: debugger shows email address(es) in first textField
        // but only if it's about max 35 characters
        if (((UITextField *)view).text)
        {
            eAddress = [NSString stringWithString:((UITextField *)view).text];
            NSLog(@"FOUND UITextField: %@", eAddress ? eAddress : @"");
            [emailArray addObject:eAddress];
        }
    }
    NSArray *subviews = [view subviews];
    if (subviews) {
        for (UIView *view in subviews)
        {
            NSString *s = [self findEmailAddresses:view depth:count+1];
            if (s) eAddress = s;
        }
    }
    return eAddress;
    }