Как прикрепить текстовый файл с почтой в приложении iphone? - PullRequest
0 голосов
/ 27 января 2012

Я разрабатываю одно приложение для iPhone с использованием Objective-C, в котором мне нужно отправлять электронные письма, прикрепив к нему текстовый файл. Может ли кто-нибудь помочь мне?

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Привет, посмотрите на это

MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
composer.mailComposeDelegate = self;
[composer setSubject:@"Subject"];
NSString *fullPath =//get path of the file
NSData *fileData = [NSData dataWithContentsOfFile:fullPath];
[composer addAttachmentData:fileData 
                 mimeType:@"text/plain" 
                 fileName:@"File_Name"];        
NSString *emailBody = [NSString stringWithString:@"Body"];
[composer setMessageBody:emailBody isHTML:YES];

[self presentModalViewController:composer animated:YES];
[composer release];
0 голосов
/ 27 января 2012

Это своего рода рабочий код в моем приложении. Файл (текстовый файл) находится в моем каталоге документов приложения Убедитесь, что вы добавили MessageUIframework в свой проект и импортируйте их в файл интерфейса

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>

@interface Your CLass : UIViewController <MFMessageComposeViewControllerDelegate>

Код

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if ([mailClass canSendMail])
    {
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;

        [picker setSubject:@"Your Subject"];        

        NSFileManager* manager = [[NSFileManager alloc] init]; 
        NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];   
        if (![[self NoteFile] isEqualToString:@""]) //check if note is blank
 {
            NSString *NoteFilePath = [documentsDirectory 
                                           stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt",[self NoteFileName]]];
            NSData *myNoteData = [NSData dataWithContentsOfFile:NoteFilePath];
            [picker addAttachmentData:myNoteData mimeType:@"text/plain" fileName:@"Name you want to give your file.txt"];
        }

        [manager release];


        // Fill out the email body text
        NSString *emailBody = @"I am attaching my file!";
        [picker setMessageBody:emailBody isHTML:NO];

        [self presentModalViewController:picker animated:YES];


        [picker release];

Вы можете дополнительно проверить статус почты, используя методы делегата

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
0 голосов
/ 27 января 2012

, если вы используете контроллер представления почтового композитора:

[mailComposerViewController addAttachmentData:fileData mimeType:@"text/plain" fileName:@"name_of_text_file"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...