Jag har en applikation som skickar ett mail till mig när ett oväntat fel uppstår i programmet. Jag utnyttjar System.Web.Mail, men jag har förstått att det bara är en .Net-wrapper till CDOSYS. Nu är det ju så att detta inte fungerar särskilt bra på Win 98 (vilket en del klienter körs på) som saknar CDOSYS.
Nu undrar jag vad ni rekommenderar för mailkomponent.
Om du är villig att ge dig på lite mer direkt tcp/ip-programmering, kan du använda Argosoft ( http://www.argosoft.com/mailserver/ ) i kombination med winsock-kontrollen (eller vilken annan ip-socket-komponent som helst). Gratisversionen av den mailservern bör vara fullt tillräcklig för att maila felmeddelanden med. Men du bör kolla upp hur smtp-protokollet fungerar. Sedan får du konfigurera din mailklient till att bevaka även den servern. För mig har den servern fungerat utmärkt.
'Man kopplar upp sig mot mailservern någon annanstans
'Därefter måste man vänta på svar från mailservern mellan
'varje kontakt med den. Det är därför jag har det mesta av
'koden i en event-hanterare som är kopplad till
'ip-socketen. m_pResponseCounter är bara en globalt
'deklarerad räknare som jag använder för att hålla reda
'på vilket svar jag bör ha fått, och vad jag då ska svara
'med. Jag utgår från att jag kan strunta i eventuella
'felmeddelanden som kommer från mailservern,
'eftersom den har en mycket enkel uppgift.
Private Sub MySocket_DataArrival(ByVal bytesTotal As Long)
Dim m_mottaget As String
Dim m_message As String
MySocket.GetData m_mottaget, "String"
Select Case m_pResponseCounter
Case 0
MySocket.SendData ("MAIL FROM: " & strAvsandare & vbCrLf)
Case 1
MySocket.SendData ("RCPT TO: " & m_pMottagare & vbCrLf)
Case 2
MySocket.SendData ("DATA" & vbCrLf)
Case 3
m_message = "From: " & strAvsandare & vbCrLf
m_message = m_message & "To: " & m_pMottagare & vbCrLf
m_message = m_message & "Subject: " & "JobbId " & m_pJobbId & vbCrLf & vbCrLf
'OBS! Avsluta med & "." & vbCrLf
m_message = m_message & "Ditt jobb med id " & m_pJobbId & " är nu klart." & vbCrLf & "." & vbCrLf
MySocket.SendData (m_message)
Case 4
MySocket.SendData ("QUIT" & vbCrLf)
Case 5
MySocket.Close
End Select
m_pResponseCounter = m_pResponseCounter + 1
End Sub
Som synes är det inte så otroligt komplicerat. Åtminstone inte så länge som man inte har tänkt sig någon mer omfattande funktionalitet eller felhantering.
OK, men jag skulle vilja ha en .NET-komponent, så den inte behöver registreras. Det enda jag behöver göra är att skicka enkla mail. Finns det ingen inbyggd mailkomponent i Win 98? Om det fanns skulle jag kunna skriva en .NET Wrapper till denna. Det vore det enklaste.
257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2