Är det någon här som pysslat något med mailhantering? Patrik. Att det inte är lätt det vet jag, det är därför jag tänkte peta lite i det. ;) Tackar, det där ser bra ut. Skall du öppn aupp ett workspace? Släng in mig då, alltid kul o titta på andra arbeten o idéer. Det kanske blir ett workspace av det. Jag vet inte riktigt vad det ska bli ännu. Har en liten idé om att bygga en CRM applikation som klarar att hantera mail. Skrev ner den i min blogg imorse. Men eftersom det är ett eget projekt så ska det ju finnas tid också. Sitter och testar lite nu med denna http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=80008853-853c-4233-9a89-21973c44c5ac och det funkar fint en WinForms. Jag kan koppla upp mig mot min mailserver, logga in, kolla mail, m.m. Nej du behöver inte ställa om nått. Du sätter själv upp den port du vill köra via. Ok, tack, får testa att öppna i brandväggen eller routern. Eftersom det är mot en mailserver hos webbhotellet så måste jag gå via port 110. Kanon, funkar när jag stänger av brandväggen på servern, så nu ska jag bara fixa inställningarna så att den accepterar port 110. Ja det funkar ju bra det där. Inga problem att koppla upp, logga in, kolla mail och logga ut. Dock så upptäckte jag att jag måste göra allt i samma veva. I en WinForms applikation kan man ju skapa kopplingen sedan låta den ligga och trixa med olika saker innan man t.ex. raderar mail och loggar ut, allt på olika knapptryckningar. Men när man kör från en webbsida så kan man inte (tror jag) skapa kopplingen och sedan göra en PostBack för att fortsätta. På sätt och vis så känns det rätt logiskt att sidan inte håller kvar kopplingen när den laddat klart, men jag kanske har missat något? Du borde ju kunna lägga din hantering i en Singleton class på så vis är den levande hela tiden. Ja, det är ju en tanke som får utforskas senare. I det här scenariot som jag experimenterar med just nu så finns det dock inget behov av att hålla den levande. Det första jag tänkte göra är att logga in, hämta de mail som finns och antingen spara ner de som filer eller läsa in i en databas och när det är gjort radera mailet, sedan logga ut. Så allt kommer att göras i ett svep. RegisterForTcpSocketEvents ? vart hittar du den i koden? I cpSphere som jag experimenterar med så har Pop3 följande creator cpSphere http://www.codeproject.com/dotnet/cpSphereEmailComponent.aspHämta mail från SMTP server från ASP.NET
Nu menar jag inte att skicka mail från en ASP.NET sida utan att hämta mail från en SMTP POP3 server precis som ett vanligt mailprogram gör. Jag vet att t.ex. Jmail ska klara det och att DiMac har nån komponent. Men jag är ute efter själva .NET klasserna som skulle hantera detta.
Min tanke:
Min webbapplikation skall logga in på en SMTP server, hämta alla mail och lägga dess som filer i MIME-format i en katalog på webbservern, radera mailen på SMTP servern.
Anledningen att jag vill ha detta i en webbapplikation är att jag vill ha en central databas som jag sedan kan lägga ett webbinterface eller köra en desktopapplikation mot.
På http://www.4guysfromrolla.com/webtech/092201-1.shtml kan man läsa om hur man gör det med AspPop3 komponenten.
Har även hittat http://anmar.eu.org/projects/sharpwebmail/ som dels innehåller MimeTools och även en webmailapplikation. Tänkte grotta ner mig i den koden och se vad jag kan hitta. Förhoppningsvis fixar delar av webmailapplikationen detta.Sv: Hämta mail från SMTP server från ASP.NET
MM. men de tär inte så lätt att bara göra. :-) Då du måste känna till protokollet själv o nyttja Socket programmering m.m. Något som skulle ta mer tid än använda en redan existerande komponent. Som du ovan nämner.
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
I vilket fall som helst så tänkte jag börja med sharpWebMail komponenten och se vad jag kan lära mig från den. Vill helst inte köpa en komponent eftersom det oftast inte är med någon sourcekod och jag tänkte inte bygga den här appen bara för att den ska funka, utan för att jag ska lära mig lite också.
Lite samma tanke som med din OR Mapper antar jag? :)Sv: Hämta mail från SMTP server från ASP.NET
Ok.
Jaha. jo då är jag med.
här har du lite kul kod:
http://www.codeproject.com/csharp/despop3client.asp
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
Hittade även
http://www.developerfusion.com/show/2453/
http://www.codeproject.com/dotnet/cpSphereEmailComponent.asp
så nu har jag nog lite att börja med.Sv: Hämta mail från SMTP server från ASP.NET
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
Sv: Hämta mail från SMTP server från ASP.NET
Men, går det att överhuvudtaget köra Sockets från en webbsida? Eller finns det andra klasser att använda i sådana situationer? Eller måste man ställa in något speciellt på webbservern för att kunna skapa en TCP-socket?Sv: Hämta mail från SMTP server från ASP.NET
Se bara till att porten är öppen uttåt. Sedan vet jag inte riktigt hur det är med rättigheterna då man kör som en ASP .Net användare under webben.
Har dock själv gått med Socket via web app. Fast då endast port 80. Då jag inte bheövde nyttja någon annan, men gick det skall väl andra oxå gå.
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
Sv: Hämta mail från SMTP server från ASP.NET
Sv: Hämta mail från SMTP server från ASP.NET
Ett annat frågetecken som dykt upp är att i den koden som jag hittat och experimenterar med så skapas själva socketen, porten sätts och sen körs RegisterForTcpSocketEvents(); Men det finns ingen sådan funktion någonstans i koden och googlar man eller söker på MSDN så hittar man inget heller. Så man undrar ju vad det innebär.Sv: Hämta mail från SMTP server från ASP.NET
Dock delad med andra som ev går in med den. Om du inte skapar upp den med Session som key.
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
Men man kanske kommer på andra applikationer under vägens gång där det kan vara en fördel att hålla kopplingen levande.
Du hade inget förslag om vad RegisterForTcpSocketEvents() kommer ifrån?Sv: Hämta mail från SMTP server från ASP.NET
Mvh JohanSv: Hämta mail från SMTP server från ASP.NET
<code>
InitializeComponent();
_server = new PopTcpSocket();
_server.Port = _port;
RegisterForTcpSocketEvents();
</code>
Och det jag inte kan lista ut är vad RegisterForTcpSocketEvents är för funktion. Den dyker upp 3-4 gånger men bara som anrop, det finns ingen funktion som heter så och går inte att hitta något på google och msdn.Sv: Hämta mail från SMTP server från ASP.NET
Finns sedan en länk därifrån till hans GotDotNet Workspace.
Själva Tcp Socketen för Pop skapas i Pop3.cs och där finns creatorn jag visade ovan.