0

これが私のコードです:

#Region "Imports"
Imports System.Text.RegularExpressions
Imports System.Text
Imports Microsoft.VisualBasic.CallType
Imports ImapX
Imports System.Runtime.CompilerServices
Imports System.Security.Authentication
Imports System.IO
Imports ml = System.Net.Mail
Imports System.Net
Imports ImapX.Enums
Imports ImapX.Constants
Imports System.Security.Authentication.SslProtocols
#End Region

Module Module1
Sub Main()
    Dim _messages As List(Of ImapX.Message)

    Using MyImapClient = New ImapX.ImapClient
        With MyImapClient
            .Host = ImapServer  
            .Port = Port    
            .SslProtocol = Ssl3 Or Tls
            .ValidateServerCertificate = True

            .Credentials = New ImapX.Authentication.PlainCredentials(UserName, Password)
            Dim IsConnected As Boolean = .Connect
            .Login()
            .Behavior.AutoDownloadBodyOnAccess = False
            .Behavior.AutoPopulateFolderMessages = False
            .Behavior.MessageFetchMode = MessageFetchMode.Full
            .Behavior.ExamineFolders = False
            .Behavior.RequestedHeaders = {MessageHeader.From, MessageHeader.[Date], MessageHeader.Subject, MessageHeader.ContentType, MessageHeader.Importance}
            'Dim IsInboxSelected As Boolean = .SelectFolder(.Folders.Inbox.Name)
            'Dim IsInboxSelected As Boolean = .Folders(.Folders.Inbox.Name).[Select]()
        End With

        Dim MyFolder As Folder = MyImapClient.Folders.Inbox            
        _messages = MyFolder.Search().OrderBy(Function(n) n.[Date]).ToList()
        _messages.ForEach(Sub(n) n.Download(MessageFetchMode.Full))         
        _messages.ForEach(Sub(n) n.Download(MessageFetchMode.Full))         
     End Using

    Dim MyAttachment As ImapX.Attachment = _messages.First.Attachments.First
    MyAttachment.Download()

    Dim FolderPath As String = "C:\Users\AAA\Downloads\"
    Dim LocalFileName As String = "1212.txt"
    MyAttachment.Save(FolderPath, LocalFileName)

End Sub

End Module

コードは問題なく動作します。imap サーバーに接続し、最初の電子メールの最初の添付ファイル (.txt ファイル) をダウンロードするので、そのまま保存します。

問題は、ファイルの内容の前に「* 2 FETCH (」が追加され、その後に「UID 45」が続き、すべてのキャリッジ リターンがファイルから削除されていることです

お手伝いいただけますか?ありがとう、

4

1 に答える 1

0

私の推測では、CRLF (キャリッジ リターン ライン フィード) は、ダウンロードを表示しているときに探している形式ではありません。NotePad++ などを使用して添付ファイルを調べ、キャリッジ リターンが表示されていることを確認します。表示されるすべてが cr であり、crlf を探している何かでファイルを表示している場合、それらは無視されます。

確認すべきもう 1 つの点は、.download 呼び出しで使用されているデフォルトのエンコーディングと、元の添付ファイルのエンコーディングです。

于 2014-04-04T21:09:05.567 に答える