2015-05-02 3 views
1

Когда я передаю olMHTML, он сохраняет его с расширением .msg, но если я изменю расширение на .mht, он отлично работает как файл mht, и если у меня нет проблем с открытием файла с .msg расширение. Если я сохраню его как olMSGUnicode, он сохраняет без расширения, но добавление расширения .msg делает его отлично работающим как файл .msg.Метод MailItem SaveAs() FIletypes

Каков правильный способ сохранить как .mht как olMHTML, кажется, формат .msg, хотя кажется неправильным, потому что, как я уже сказал, у меня проблемы с открытием файла msg, но отлично работает при переименовании в .mht и olMSGUnicode, а 'Сохранить с расширением самостоятельно, открывает файл как файл .msg.

Чтобы быть ясным, почему olMHTML сохраняется как msg вместо mht? olMSGUnicode отлично работает для файлов msg, хотя они сохраняются без расширения, добавляя .msg, что делает их идеальными. Как и изменение olMHTML в .mht из .msg.

EDIT: Делая File.Move() после сохранения, я могу переименовать его в .mht, и он отлично работает, но было бы гораздо удобнее просто сохранить int в правильном формате.

EDIT2: Код по просьбе комментатора в:

 if (!filename.EndsWith(".mht")) 
     { 
      filename = filename + ".mht"; 
     } 
     try 
     { 
      message.SaveAs(path + filename, Microsoft.Office.Interop.Outlook.OlSaveAsType.olMHTML); 
      MessageBox.Show(String.Format("Success saving file {0} at {1}", filename, path), "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      string newfilename = filename.Substring(0, filename.Length - 4) + ".mht"; 
      File.Move(path + filename, path + newfilename); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(String.Format("Error {0} while trying to save {1} at {2}", ex, filename, path), "Error", 
       MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

я понял, что не обновляется, если заявление не будет .msg, она работает. Но все же не объясняет, почему при использовании olMHTML в качестве типа сохранения я получаю файл без расширения, а не с расширением .mht, и я должен указать его, а с другими типами SaveAs я этого не делаю. Но это вопрос другого дня. Я получаю ответ.

+0

прочитайте документацию https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.olsaveastype.aspx, возможно, вы поймете, с чем она работает.mht – MethodMan

+0

По-прежнему не объясняет, почему olMHTML сохраняет как msg – shenk

+0

работает ли ваш интернет в отношении google? в любом случае посмотрите на этот разрешенный ответ https://social.msdn.microsoft.com/forums/office/en-US/d27f9085-c067-4e63-ba18-87e0eb1e8a10/saveas-mht-format – MethodMan

ответ

2

Я не уверен, как можно получить неправильное расширение, если вы являетесь тем, кто указывает имя файла (включая расширение) при вызове MailItem.SaveAs.

Убедитесь, что вы указали полное имя файла, которое содержит каталог, имя файла и расширение.

+0

Я не указываю расширение. Все типы SaveAs() обычно не имеют расширения, но несколько. olMHTML имеет .msg, когда он должен быть .mht. olMSG и olMSGUnicode не имеют расширения, но должны быть .msg, и если вы переименуете его, он отлично работает – shenk

+1

Так почему бы вам не указать расширение явно? Я бы сказал, что это будет ошибкой, если Outlook изменит расширение с пустого (которое вы укажете) на то, что, по его мнению, будет уместным. –

+0

Я делаю, и это сохраняет как .mh..msg странно только это сохранение, поскольку тип make outlook показывает индикатор выполнения. В других случаях он просто приостанавливается и появляется без расширения. Для MHTML я вижу, что он сохраняет индикатор выполнения и показывает расширение msg – shenk

1

страница OlSaveAsType Перечисление в MSDN предоставляет таблицу значений и соответствующих расширений файлов:

olTXT Текстовый формат (.txt)

olRTF Богатый текстовый формат (.rtf)

olTemplate Microsoft Outlook шаблон (.oft)

olMSG Перспективы формат сообщений (.msg)

olDoc Micr Формат osoft Office Word (.doc)

формат olHTML HTML (.html)

формат olVCard VCard (.vcf)

формат olVCal VCAL (.vcs)

формат olICal ческих (. ИКС)

olMSGUnicode Перспективы Unicode формат сообщений (.msg)

формат olMHTML MIME HTML (.mht)

+0

Я знаю, и, как я уже сказал, я использую olMHTML для формата .mht и сохраняет его как .msg. Если я укажу расширение формата в имени файла, я завершу работу с .mht.msg. Я думаю, что документы ошибочны для olMHTML – shenk

Смежные вопросы