вложение электронной почты айфона

Я использовал структуру MessageUI для отправки почты с вложением из своего приложения. Но я получил следующую ошибку,

2009-09-07 19:52:23.483 emailTest[11711:5b17]
 Error loading /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator:  dlopen(/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator, 265): Library not loaded: /System/Library/PrivateFrameworks/MobileWirelessSync.framework/MobileWirelessSync

 Referenced from: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator

      Reason: image not found

2009-09-07 19:52:23.489 emailTest[11711:5b17] [+[AccountsManager _migrateAccountsIfNeeded]] Accounts migration failed
[Switching to process 11711 local thread 0xf03]

мой код,

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate = self;
[picker setSubject:@"This is iPhone email   attachment test"];

UIImage *sampleImg = [UIImage imageNamed:@"iPhone.jpg"];
NSData *imageData = UIImageJPEGRepresentation(sampleImg, 1);
[picker addAttachmentData:imageData mimeType:@"image/png" fileName:@"iPhone.jpg"];


NSString *emailBody = @"I am sending the image attachment with iPhone email service";
[picker setMessageBody:emailBody isHTML:YES];

[self presentModalViewController:picker animated:YES];
[picker release];

пожалуйста, помогите мне.


person SST    schedule 07.09.2009    source источник
comment
Уточните, какой код вы используете для создания вложения? Отсоединить сообщение? Как именно вы используете фреймворк MessageUI?   -  person Tim    schedule 07.09.2009
comment
пожалуйста, взгляните на код.   -  person SST    schedule 07.09.2009
comment
привет, у тебя заработал код? Я тоже получил такое же сообщение, когда коснулся кнопки отправки в электронной почте. Но я не добавляю никаких вложений с почтой. Я не мог отключить почтовый контроллер, когда нажимал кнопку отмены. Я добавляю почтовый контроллер в слой cocos2d. Любая помощь, пожалуйста. Спасибо.   -  person srikanth rongali    schedule 12.05.2010


Ответы (4)


Вам не нужно указывать расширение в имени файла. вроде "iphone.jpg" не работает. просто напишите «iphone» в имени файла, потому что вы уже определили mimeType. А также вы должны определить путь для ресурса.

Ниже приведен пример кода для прикрепления файла «rainy.png» к письму.

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

[picker setSubject:@"Hello"];


// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"]; 

[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];  
[picker setBccRecipients:bccRecipients];

// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"png"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy"];

// Fill out the email body text
NSString *emailBody = @"It is raining";
[picker setMessageBody:emailBody isHTML:NO];

[self presentModalViewController:picker animated:YES];
[picker release];
person Jay Vachhani    schedule 30.09.2009

Эта ошибка, по-видимому, связана с работающей почтой в симуляторе, а не с вашим кодом. Даже стандартный образец Apple MailComposer сообщает об идентичной ошибке в симуляторе:

2009-11-12 20:30:39.270 MailComposer[7426:4f1f] Error loading /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator:  dlopen(/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator, 265): Library not loaded: /System/Library/PrivateFrameworks/MobileWirelessSync.framework/MobileWirelessSync
  Referenced from: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator
  Reason: image not found
2009-11-12 20:30:39.271 MailComposer[7426:4f1f] [+[AccountsManager _migrateAccountsIfNeeded]] Accounts migration failed
person leon    schedule 13.11.2009
comment
Привет, у меня то же самое в журнале. Когда я коснулся кнопки закрытия или отправки в почтовом контроллере. Я добавляю почтовый контроллер в слой cocos2d. И у меня не работает почта в симуляторе и не в вашем коде. Что это ? мы можем изменить его? Спасибо. - person srikanth rongali; 12.05.2010

Добавьте следующий метод, чтобы закрыть MFMailComposeViewController:

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:   (MFailComposeResult)result error:(NSError*)error

 {
 // NEVER REACHES THIS PLACE
 [self dismissModalViewControllerAnimated:YES];

 NSLog (@"mail finished");
 }
person user1119116    schedule 14.05.2012
comment
Хороший вопрос, но, вероятно, проблема не в этом... кстати, должно быть MFMailComposeResult вместо MFailComposeResult. - person newenglander; 29.10.2012

используйте это для прикрепления изображения в почте, протестировано в ios 4,5,6

    MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
    UIImage *myImage = [UIImage imageNamed:@"image.png"];
    NSData *imageData = UIImagePNGRepresentation(myImage);
    [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"image"];
person busta117    schedule 10.09.2013