2

iPhone でメールを作成するために MFMailComposeViewController を使用します。これらのメールには、テキスト、テキスト添付ファイル、および一部の画像添付ファイルが含まれます。

if ([MFMailComposeViewController canSendMail]) {

    mailController = [[MFMailComposeViewController alloc] init];
    [mailController setToRecipients:recipients];
    if ([ccRecipients count] > 0) [mailController setCcRecipients:ccRecipients];
    [mailController setSubject:project];
    [mailController setMessageBody:message isHTML:NO];

    if (csv) {
        [mailController addAttachmentData:csvData mimeType:@"text/csv" fileName:csvFileName]; 
    }

    QEMailAddPicturesOperation * operation = [[QEMailAddPicturesOperation alloc] init];
    operation.delegate = self;
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue addOperation:operation];
}

@implementation QEMailAddPicturesOperation

- (void) main {
    ....
    for (NSString * fileName in listOfPictures) {
        NSString * path = [directory stringByAppendingPathComponent:fileName];
        NSData * imageData = UIImageJPEGRepresentation([UIImage imageWithContentsOfFile:path], PIC_COMPRESSION_RATE );
        [mailController addAttachmentData:imageData mimeType:@"image/jpg" fileName:fileName];
    }
}

すべて正常に動作し、メールを送信できます。しかし、結果は次のとおりです。

Content-Type: multipart/mixed; boundary=Apple-Mail-256A861D-10BB-4031-8DFB-0E8FDA8F9337

....

Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)
X-Mailer: iPhone Mail (9A405)

....

--Apple-Mail-256A861D-10BB-4031-8DFB-0E8FDA8F9337
Content-Transfer-Encoding: 7BIT
Content-Type: TEXT/plain;
charset=us-ascii





--Apple-Mail-256A861D-10BB-4031-8DFB-0E8FDA8F9337
Content-Disposition: inline;
filename=MFA_001.JPG
Content-Type: IMAGE/jpg;

....

ご覧のとおり、メール コンポーザは、添付された (および base64 コード化された) 画像の間にいくつかのテキスト行を挿入します。

Outlook 2010 は、これらの行を添付ファイル (ATT......) として解釈します。たとえば、8 つの画像を送信すると、8 つの追加の空の添付ファイルが Outlook に作成されます。Outlook は、iPhone メールの署名も添付ファイルとして表示します。Mac 上の Outlook 2011 は動作します。

iPhone で空行が作成されたり、Outlook (2007、2010) で添付ファイルが作成されたりしないようにするにはどうすればよいですか?

4

1 に答える 1

0

ここに質問を再投稿しました-回答がなかったため、MFMailComposeViewController は署名を .txt ファイルとして添付します。

さらに掘り下げた結果、これは Exchange サーバーの問題であり、Swift/iOS/ などの問題ではありません。これは、Exchange が電子メール コンテンツの順序付けを期待する方法に関係しています。新しいバージョンの Exchange で問題が解決されているかどうかについて、明確な答えは見つかりませんでした。MIT リンクでは、特に Exchange Server 2007 & 2010 について言及されています。また、メールが受信ではなく Exchange によって送信されている場合に問題があることを確認できました。

http://kb.mit.edu/confluence/pages/viewpage.action?pageId=4981187

https://support.microsoft.com/en-us/help/969854/the-body-of-a-message-is-shown-incorrectly-as-an-attachment-if-you-try

于 2017-11-02T16:08:43.300 に答える