webForumDet fria alternativet

Hämta epost

.NET

3 svar · 710 visningar · startad av DavidB

Medlem sedan jan. 20001 372 inlägg
Frågan#1

Tjena

Håller på att göra ett program som skall hämta ner epost från ett pop3 konto. Jag använder mig utav Indy.Sockets för att åstakomma det hela och det fungerar fint förutom en sak.

Jag får problem med att bokstäverna å ä ö förvandlas till =E5 =E4 =F6, någon som vet hur jag skall göra för att få det att fungera riktigt? Kanske skall jag byta från Indy till någonting annat? Några idéer?

Medlem sedan dec. 19996 721 inlägg
#2

Anledningen till att tecknen blir så är att de lagras som Quoted Printable i mailen, enligt standard. Använd en POP3-komponent i stället, så slipper du den huvudvärken, och får sannolikt en stabilare mailhantering på köpet.

http://www.devdirect.com/ALL/POP3Components_PCAT_2054.aspx

http://www.lesnikowski.com/Projects/Mail/Index.aspx

...eller om du verkligen vill parsa själv

http://www.webforum.nu/showthread.php?t=134952

Medlem sedan jan. 20001 372 inlägg
#3

Tackar, det fungerade utmärkt. Använde mig utav Lesnikowski's komponent.

Tänkte dock att jag skulle testa att skicka mail med komponenten också men lyckas inte med det, har gjort efter det exempel man kan ladda ner från sidan.

SimpleMailMessage sm = new SimpleMailMessage();
sm.Subject = "Test";
sm.From.Add(new MailBox("alice@mail.com", "Alice"));
sm.To.Add(new MailBox("bob@mail.com", "Bob"));
sm.TextDataString = "This is plain text message.";

SmtpMail mail = new SmtpMail(sm.CreateMail());
Smtp smtp = new Smtp();

try
{
    smtp.Connect("smtp.domän.se");
    smtp.Helo("domän.se");
    smtp.SendMessage(mail);
}
catch (Exception ex)
{
    Response.Write(ex.Message);
}
finally
{
    smtp.Close(true);
}

Det första felet jag får är:
System.NullReferenceException: Object reference not set to an instance of an object.
På raden:

sm.Subject = "Test";

Tar jag bort den raden och testar igen får jag följande:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
På raden:

SmtpMail mail = new SmtpMail(sm.CreateMail());

Är det någon som har testat att skicka epost med Lesnikowski's komponent och fått det att fungera och kanske har några tips?

Hat testat lite andra komponenter (Indy.Sockets och System.Net.Mail) för att skicka och det har fungerat förutom att det blir problem med vissa tecken.

Medlem sedan dec. 19996 721 inlägg
#4

Hmmm, får samma fel. Verkar lite sådär...

För att skicka mail använder du med fördel

http://sourceforge.net/projects/opensmtp-net/

Lite tråkigt att behöva blanda in fler prylar, men men....

Eller så kan du höra av dig till herr Lesnikowski och se om han vet vad som ska göras.

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)