Zasílání e-mailu více adresátům – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zasílání e-mailu více adresátům – .NET – Fórum – Programujte.comZasílání e-mailu více adresátům – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Adam
~ Anonymní uživatel
157 příspěvků
12. 8. 2012   #1
-
0
-

Zdravím.

Chci ve WinForms programu zasílat email více adresátům „zároveň“. 
Vím, že to lze tímto způsobem:

message.To.Add("franta.omacka@quick.cz, pepa@novak.com");

... ovšem nechci ty maily zadávat takto absolutně, ale z textboxu. Proto jsem zkoušel následujícím způsobem předat vlastnost text textboxu (název „kontejner“), dále jsem to zkoušel pomocí polí atd. Stále se nemohu dobrat funkčního řešení.

public string[] maily;
        public bool vicePrijemcu = false;
// ...
            smtp.Port = 587;
            smtp.EnableSsl = true;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.Credentials = new NetworkCredential(odesilatel.Address, hesloKGmailu);
            smtp.Timeout = 20000;
// ...
            using (MailMessage message = new MailMessage()
                    {
                        Subject = predmetEmailu, Body = obsahEmailu
                    })
            {
                if (vicePrijemcu)
                {
           // zde by bylo třeba vložit buď postupně celé pole emailových adres či vyřešit                             

                   message.To.Add(kontejner.Text);
                }
                else message.To.Add(prijemce); //zvolen pouze jeden prijemce
                smtp.Send(message);
            }
Nahlásit jako SPAM
IP: 90.180.236.–
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
13. 8. 2012   #2
-
0
-

Pokud máš více textboxů, každý po jednoho adresáta, tak je prostě přidáš všechny. A pokud všechny adresáty nasmažíš do jednoho, tak ho tam přidáš jen jednou. No a pokud to chceš dělat tak, že postupně přes jeden textbox přidáváš adresáty (po jednom), tak si tam ještě přidej třeba ListBox, do kterého je budeš z toho textboxu přesouvat a při odeslání emailu je tam z toho ListBoxu nasmažíš všechny.

Nahlásit jako SPAM
IP: 78.80.52.–
Adam
~ Anonymní uživatel
157 příspěvků
13. 8. 2012   #3
-
0
-

#2 liborb
Díky. Moje situace je taková, že mám jeden textbox, do kterého chci zapsat mejly (něčím oddělené), smažu bílé znaky a třeba i oddělovače (mám hotovo)  a dané mejly přidám všechny jako adresáta. Ovšem možnost „nasmažit“ je najednou, což podle mě dělám tou ukázkou kódu výše, nefunguje..

Původně jsem myslel, že je dám do pole a budu je tam přidávat postupně cyklem. Něco jako: 

                        if (i < maily.Length - 1)
                        {
// zde přidávám za každou adresu čárku, metoda add to vyžaduje
                            message.To.Add(maily[i] + ',');
                        }
                        else message.To.Add(maily[i]);

... což je asi blbost.

Nahlásit jako SPAM
IP: 90.180.236.–
Adam
~ Anonymní uživatel
157 příspěvků
13. 8. 2012   #4
-
0
-

#3 Adam
Teď jsem se znovu podíval, prostě si někde předtím než použiju metodu  Add  připravým daný string, už je jedno asi jak (nasekám cely textbox a hodím mezi maily čárky) a následně string předhodím metodě  Add. To by mohlo fungovat, hm? 

Nahlásit jako SPAM
IP: 90.180.236.–
Mutagen0
Super člen
14. 8. 2012   #5
-
0
-

Já bych to řešil pomocí Splitu normálně, že si vytvořím string (textbox) s mailama oddělené čárkou a postupně bych zjistil kolik tam je čárek pak bych udělal for kde se všechny ty splity vypíšou jakoby

string maily = "ahoj@seznam.cz,ahoj2@seznam.cz,ahoj3@seznam.cz";
int pocetMailu = 0;
for (int i = 0; i < maily.Length; i++)
{
	if (maily[i] == ',') pocetMailu++;
}

for (int i = 0; i < pocetMailu; i++)
{
	string mail = maily.Split(',')[i];
	//A tady to tvoje 
	message.To.Add(mail);
}

Je to psaný z hlavy může obsahovat hrubé chyby, ale aspon jsem nastínil jak bych to řešil já ...

Nahlásit jako SPAM
IP: 89.190.90.–
15. 8. 2012   #6
-
0
-

#5 Mutagen
Jen mala optimalizace:

string maily = "ahoj@seznam.cz,ahoj2@seznam.cz,ahoj3@seznam.cz";
string [] adresati;

adresati = maily.Split(',');

foreach(string adresat in adresati)
  message.To.Add(adresat);

Hanzi

Nahlásit jako SPAM
IP: 193.84.128.–
Mutagen0
Super člen
15. 8. 2012   #7
-
0
-

#6 honza_muller
No jasný, já to psal na rychlo, takže jsem u toho 2x moc nepřemejšlel ... A tohle mě v tu chvíli zrovna nenapadlo :D

Nahlásit jako SPAM
IP: 89.190.90.–
soso
~ Anonymní uživatel
7 příspěvků
soso
~ Anonymní uživatel
7 příspěvků
15. 8. 2012   #9
-
0
-

je to o webovych app. ale da sa s tym pracovat

Nahlásit jako SPAM
IP: 78.99.209.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 34 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý