2013-10-10 32 views
2

早上好,保存與主題爲郵件的郵件

我希望有人可以幫助我在這裏與一段編碼。

我正在尋找保存選定的電子郵件到一個特定的目錄,電子郵件的名稱,當然作爲一個.msg文件。 這就是我今天所做的,它不工作。它保存了一個文件,但名稱只有前2個字符(看起來像是在分號文件名後的錯誤,例如:FW或RE)...文件的內容是空白的,文件類型尚未應用。

'code to save selected email 
Dim selectedEmail As MailItem 
Set selectedEmail = ActiveExplorer.Selection.Item(1) 
Dim emailsub As String 
emailsub = ActiveExplorer.Selection.Item(1).Subject 
    With selectedEmail 
     .SaveAs "C:\direcotry\folder\" & emailsub & ".msg", olMSG 
    End With 

謝謝你的期待。 Dom

回答

2

原因很簡單。你的電子郵件主題包含和無效的字符。例如:這通常發生在當電子郵件是RE:FWD:

試試這個

Sub Sample() 
    Dim selectedEmail As MailItem 
    Dim emailsub As String 

    Set selectedEmail = ActiveExplorer.Selection.Item(1) 

    emailsub = GetValidName(selectedEmail.subject) 

    'Debug.Print emailsub 

    With selectedEmail 
     .SaveAs "C:\direcotry\folder\" & emailsub & ".msg", OlSaveAsType.olMSG 
    End With 
End Sub 

Function GetValidName(sSub As String) As String 
    '~~> File Name cannot have these \/: * ? " < > | 
    Dim sTemp As String 

    sTemp = sSub 

    sTemp = Replace(sTemp, "\", "") 
    sTemp = Replace(sTemp, "/", "") 
    sTemp = Replace(sTemp, ":", "") 
    sTemp = Replace(sTemp, "*", "") 
    sTemp = Replace(sTemp, """", "") 
    sTemp = Replace(sTemp, "<", "") 
    sTemp = Replace(sTemp, ">", "") 
    sTemp = Replace(sTemp, "|", "") 

    GetValidName = sTemp 
End Function