SORU
6 EKİM 2009, Salı


Nasıl MFMailComposeViewController bu MailComposer Sayfa Uİİmage Ekle

Eklemek MFMailComposerViewController bir sayfa oluştur içine UIImages istiyorum.

Lütfen onları takmak istemiyorum not, ama bir masa e-posta vücut parçası olacak HTML kodu kullanarak yerleştirmek istiyorum.

CEVAP
17 Mart 2010, ÇARŞAMBA


Yine yeni bir cevap ile geri döndü. Hala onu kullanmak için bir yol yok ikna olmadım çünkü benim önceki kod olsa terk ediyorum. Bunu kendime saklayacağım. Aşağıdaki kod çalışır. Mustafa base64 kodlama görüntüleri gösteriyor, ve onlar sadece Apple için Apple iş diyor, ama aslında bu tam olarak doğru değil. Base64 kodlama yaptığı iş ile en posta istemcileri şimdi (YANİ daha önce yoktu desteği, ama şu anda desteklenen görüntüleri belirli bir boyutu, ama emin değilim tam olarak ne boyutta). Sorun posta istemcileri gibi Gmail istiyorsunuz kaldýrmak için görüntü veri, ama orada basit bir çözüm için... ... koymak <b> and </b> Etiketler <img ...> etiketi yapmanız gereken tüm tutmak için ondan almak çıkarılmış. E-posta içine bir görüntü elde etmek için, projenize base64 kodlayıcı almak gerekir. Orada (C çoğunlukla olsa) birkaç vardır, ama bulduğum en basit ObjC bir çağrıldıBilimsel deneyler bazen büyük Matt Gallagher tarafından Base64("Kopyalamadan sonra adını bana sorun verdi çünkü") aldım. Kopyala .h ve .m projenize dosya ve emin olun alma .h kullanmayı planladığınız dosya. Bu gibi bir kod e-posta vücuduna bir görüntü elde edeceksiniz...

- (void)createEmail {
//Create a string with HTML formatting for the email body
    NSMutableString *emailBody = [[[NSMutableString alloc] initWithString:@"<html><body>"] retain];
 //Add some text to it however you want
    [emailBody appendString:@"<p>Some email body text can go here</p>"];
 //Pick an image to insert
 //This example would come from the main bundle, but your source can be elsewhere
    UIImage *emailImage = [UIImage imageNamed:@"myImageName.png"];
 //Convert the image into data
    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(emailImage)];
 //Create a base64 string representation of the data using NSData Base64
    NSString *base64String = [imageData base64EncodedString];
 //Add the encoded string to the emailBody string
 //Don't forget the "<b>" tags are required, the "<p>" tags are optional
    [emailBody appendString:[NSString stringWithFormat:@"<p><b><img src='data:image/png;base64,%@'></b></p>",base64String]];
 //You could repeat here with more text or images, otherwise
 //close the HTML formatting
    [emailBody appendString:@"</body></html>"];
    NSLog(@"%@",emailBody);

 //Create the mail composer window
    MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init];
    emailDialog.mailComposeDelegate = self;
    [emailDialog setSubject:@"My Inline Image Document"];
    [emailDialog setMessageBody:emailBody isHTML:YES];

    [self presentModalViewController:emailDialog animated:YES];
    [emailDialog release];
    [emailBody release];
}

İPhone bu test ettik ve Yahoo, kişisel web sitem ve benim Gmail kendim için gömülü görüntü güzel e-postalar gönderdi. Gmail Hesabım yok ama Yahoo mükemmel çalıştı, ve bulduğum her kaynağı kalın-etiketler çalışması için tek ihtiyacınız olduğunu söylüyor. Bu yardımcı olur umarım!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • njhaley

    njhaley

    24 NİSAN 2006
  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010