Ciao a tutti, sono una new entry, ma è da diverse settimane che seguo il forum per implementare nel mio programma, in VB .NET, la gestione della FE.
Sono riuscito a inviare le PEC (e qua nulla di difficile), ma per gestire le ricevute e le fatture in arrivo, ieri ho provato a buttarmi su OpenPop.NET.
Dopo vari svisceramenti delle PEC sono riuscito a leggere gli allegati ed estrapolare le fatture, le ricevute e gli scarti.
Ecco qualche linea di codice ancora grezza in VB, magari a qualcuno interessa...
Dim port As Short = 995, useSsl As Boolean = True, allegati As Generic.List(Of MessagePart)
DIm nomeml As New IO.FileInfo(pathdoc & "Fatture\temp.eml")
Dim headers As Header.MessageHeader, from As Header.RfcMailAddress
Using client As Pop3Client = New Pop3Client
client.Connect(hostname, port, useSsl)
client.Authenticate(username, password)
For i As Integer = 1 To client.GetMessageCount
headers = client.GetMessageHeaders(i)
from = headers.From
If from.MailAddress.DisplayName.Contains("fatturapa.it") Then
oggetto = headers.Subject
Dim messaggio As Message
client.GetMessage(i).MessagePart.MessageParts(0).MessageParts(2).Save(nomeml)
messaggio = Message.Load(nomeml)
allegati = messaggio.FindAllAttachments
For Each allegato As MessagePart In allegati
If allegato.FileName.Contains("MT") Then
GestisciFattArrivo(messaggio, allegato)
ElseIf allegato.FileName.Contains("_RC_") Then
GestisciRC(messaggio, allegato)
ElseIf allegato.FileName.Contains("_NS_") Then
GestisciNS(messaggio, allegato)
End If
Next
End If
Next
End Using
Nelle varie funzioni mi salvo l'allegato(RC o NS) con l'istruzione: allegato.Save(New IO.FileInfo(percorsofile))
Ripeto è codice grezzo, giusto per provare, devo ancora verificare se l'indice 2 in MessageParts(2) è fisso o se varia in base ai messaggi.
Si accettano suggerimenti e critiche!