2016-08-12 12 views
1

この質問は以前に尋ねられたことは知っていますが、最近は何も見たことがないので修正が望まれます。 現在、2つのイメージタグを含むhtml本文のメールを送信しています。もともと私はちょうどhtml本文と画像タグ付きのiOSアプリからメールを送信

<img width="100" src="http://cdn1-www.dogtime.com/assets/uploads/gallery/30-impossibly-cute-puppies/impossibly-cute-puppy-2.jpg" >

ようなものをやっていたが、今だけのローカル画像を使用し、base64エンコーディングを使用しようとしていますので、

<img width="100" src="data:image/png;base64,...>

これまでのところ、私が持っていた成功のようなものiOSのメールの中でそれを使っていますが、GmailやOutlookなどで開いたら、それは動作しません。

誰かがこれに対する解決策を見つけていますか?そのSRC base64であるインライン画像の添付ファイルを達成するための適切なアプローチであるimgタグをHTML本文の送信

私のコード...

let mailComposer = MFMailComposeViewController() 
mailComposer.mailComposeDelegate = self 
mailComposer.setToRecipients([String]()) 
mailComposer.setSubject("email with image in body") 
mailComposer.setMessageBody(getHtmlBody(), isHTML: true) 
self.presentViewController(mailComposer, animated : true, completion: nil) 

getHtmlBody(){ 
    let imgData:NSData = UIImagePNGRepresentation(UIImage(named : "logo")!) 
    let dataString = imgData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 

    var html = "<!DOCTYPE html>" 
    html = html + "<html>" 
    html = html + "<body>" 
    html = html + "<h1>Hello World, look at this image <img width=\"100\" src=\"data:image/png;base64,\(dataString)\"></h1>" 
    html = html + "</body>" 
    html = html + "</html>" 
    return html 
} 

答えて

0

似たような問題に直面していましたが、率直に言って私は解決策を持っていません。しかし、Outlookのような一部のメールクライアントでは、画像の内容をスキャンして不適切なコンテンツがあるかどうかを識別することができないため、Gmailはbase64画像を悪意のある方法として送信することを検討しています。これにより、デフォルトでメールをスパムに移動させることがあります。一部の電子メールクライアントでは、問題とは思われません。

関連する問題