Avatar billede neverwho Nybegynder
27. august 2005 - 21:59 Der er 13 kommentarer og
1 løsning

progressbar under afsendelse af mail

er der nogen der ved hvordan man laver en progressbar til afsendelse af mail til en c# windows application?

jeg har kigget på en masse, men det er enten sampak af andet eller vb :(

er der nogen der kan hjælpe enten med link eller kode?
Avatar billede Slettet bruger
27. august 2005 - 22:36 #1
Jeg fandt et link her: http://www.c-sharpcorner.com/winforms/ProgressStatusBarTimersJSYO.asp

Roder ikke selv på nuværende tidspunkt så meget med win-forms, men der er en komponent kaldet "Progressbar" under toolbox der er lige til at smide ind i formen.
Avatar billede neverwho Nybegynder
27. august 2005 - 22:41 #2
nu var det ment i sammenhæng med mails.

jeg ved hvordan den bruges, jeg kan bare ikke finde ud af at bruge den, så den kan indikere hvor meget data der er sendt! eller om det er mailmessage og mailSMPT der skal bruges?
Avatar billede Slettet bruger
27. august 2005 - 22:47 #3
Igen, uden at være den store ekspert. Jeg fandt noget ved en søgning:

[C#]
private void CopyWithProgress(string[] filenames)
{
    // Display the ProgressBar control.
    pBar1.Visible = true;
    // Set Minimum to 1 to represent the first file being copied.
    pBar1.Minimum = 1;
    // Set Maximum to the total number of files to copy.
    pBar1.Maximum = filenames.Length;
    // Set the initial value of the ProgressBar.
    pBar1.Value = 1;
    // Set the Step property to a value of 1 to represent each file being copied.
    pBar1.Step = 1;
   
    // Loop through all files to copy.
    for (int x = 1; x <= filenames.Length; x++)
    {
        // Copy the file and increment the ProgressBar if successful.
        if(CopyFile(filenames[x-1]) == true)
        {
            // Perform the increment on the ProgressBar.
            pBar1.PerformStep();
        }
    }
}

Her er det kopiering af x-antal filer, men du kan vel sætte det til antallet af poster i din database. Jeg regner med at du vil sende til nogle brugere fra en database.
Avatar billede neverwho Nybegynder
27. august 2005 - 22:52 #4
nope, jeg skal sende en fil (attachment), og vil lave en indikator på hvor langt den er nået med denne ene mail! problemet ligger i at jeg ikke synes at kunne splitte maildelen ad, så man kan lave en step funktion som den du har lavet!

hvis det var et spg om at steppe gennem alle de mails jeg har i udbakke kan jeg godt lave det, men jeg vil have en der viser at der er sendt 56% af meddelelsen (håber du forstår det nu).
Avatar billede Slettet bruger
27. august 2005 - 22:55 #5
Hvis du benytter streams via en socket burde det vel være muligt at se hvor langt du er nået løbende. Bare en tanke :-)
Avatar billede neverwho Nybegynder
27. august 2005 - 23:01 #6
ja, men hvordan hører det sammen med afsendelse af mails?
Avatar billede Slettet bruger
27. august 2005 - 23:33 #7
Hvad er det helt konkret du mener med afsendelse af mails?
Du vil sende én enkelt mail fra en formular vha. System.Web.Mail, eller...?

Du vil gerne kunne lave en statusbar der viser præcist hvor langt den er nået i afsendelsen af denne mail?
Avatar billede neverwho Nybegynder
27. august 2005 - 23:40 #8
1. det er lige det jeg ønsker, og bruger SmtpMail.Send() til at afsende! dette er ikke til web brug men windows application.

2. lige præcis, status over hvor langt den er nået!
Avatar billede Slettet bruger
28. august 2005 - 10:04 #9
Kan du ikke lave det i en tråd?
Så kan du starte den når tråden starter og slutte den når tråden har udført sit job.

Ved ikke lige hvordan man ellers kan gøre det.
Ud fra den kode jeg fandt ser det jo netop ud som om den skal have et minimum og et maksimum og jeg kan ikke lige se hvordan man skal kunne trække et maksimum ud for afsendelsen af en email.
Avatar billede guidmaster Nybegynder
28. august 2005 - 12:04 #10
Hvornår er en mail sendt i din verden? Du bliver nød til at tænke lidt over dette spørgsmål for at du kan lave ne progressbar - for hvad er det den skal tælle op til? Til mailen er sendt til den første smtp server? Til den er modtaget af den endelige modtager? Eller ?
Avatar billede burningice Nybegynder
28. august 2005 - 14:04 #11
og en sidste ting er at du slet ikke vil kunne lave sådan en progressbar med SmtpMail.Send(), da denne ikke giver nogen mulighed for at følge med i hvor langt i processen den er med at sende mailen.

Som thomasso er inde på skal du selv ind og rode med sockets. Du skal connecte til en smtpserver på port 25. Splitte din mail op i bidder af f.eks. 1024 bytes størrelse, og sende en bid af gangen, hvorefter du incrementerer din progressbar.
Avatar billede neverwho Nybegynder
28. august 2005 - 15:01 #12
det var det jeg søgte svar på, så det er jo helt fint med alle de gode besvarelser :D

thomasso gider du smide et svar, du fortjener point :o)
Avatar billede Slettet bruger
28. august 2005 - 20:03 #13
Tak :-)
Avatar billede Slettet bruger
28. august 2005 - 20:03 #14
Og igen...

Tak :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester