Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
C# week
Avatar
Mediel
Redaktor
Avatar
Mediel:12.10.2012 17:53

nevite nekdo jak posilat z aplikace emaily ze seznamu? Klasicky postup nejde.

Odpovědět
12.10.2012 17:53
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Jančík:12.10.2012 18:41

V PHP jsem použil imap pak jsem si to hodil do XML a feeduji to do třídní skupiny na FB, abychom nemuseli sledovat stále schránku kvůli novým mailům.

$mailserver = "pop3.seznam.cz";
$port = "110/pop3";
$user = "@seznam.cz";
$pass = "";

if ($mbox = imap_open("{" . $mailserver . ":" . $port . "}INBOX", $user, $pass))
{
        $unread = imap_search($mbox, 'NEW');

        if (!empty($unread))
        {
                foreach ($unread as $i)
                {
                        $header = imap_header($mbox, $i);
                        $from = $header->from[0]->mailbox . '@' . $header->from[0]->host;

                        $body = imap_fetchbody($mbox, $i, 1);
                        $body = str_replace('=', '%', $body);
                        $body = urldecode($body);
                        $body = iconv("CP1250", "UTF-8", $body);
                        $body = nl2br($body);

                        echo('
                                <item>
                                <title><![CDATA[Nový třídní email]]></title>
                                <link>http://www.seznam.cz/</link>
                                <pubDate>' . date(DATE_RSS) . '</pubDate>
                                <description><![CDATA[' . $from . '<br />' . $body . '<br /><br />' . ']]></description>
                        </item>
                        ');
                }
        }
        else
        {
                echo('Nothing new');
        }

        imap_close($mbox);
}
else
{
        echo('Connect failed');
}

V C# je SMTP klient:
http://www.itnetwork.cz/…posilani-sms

Vyplníš to akorát jinak a mělo by to fachčit.

Nahoru Odpovědět
12.10.2012 18:41
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:12.10.2012 19:04

To je zbytečné - od toho má .NET System.Net.Mail.***

new System.Net.Mail.SmtpClient("host").Send(new System.Net.Mail.MailMessage("email odesílatele", "email příjemce")
{
    Subject = "Subject", Body = "Message text"
};);
Editováno 12.10.2012 19:07
 
Nahoru Odpovědět
12.10.2012 19:04
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:12.10.2012 19:07

A v čem se to liší od mého kódu?

Nahoru Odpovědět
12.10.2012 19:07
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:12.10.2012 19:08

Tvůj je 8x delší... :)

 
Nahoru Odpovědět
12.10.2012 19:08
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:12.10.2012 19:12

Já používám šifrované spojení. Kód napsaný na jeden dlouhý řádek není vždy kratší. Já to mám na více řádků kvůli přehlednosti.

(new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential("[email protected]", "******"), EnableSsl = true }).Send("[email protected]", to, "Předmět", msg_body);

Teď ho máš delší ty ;)

Nahoru Odpovědět
12.10.2012 19:12
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Mediel
Redaktor
Avatar
Mediel:12.10.2012 21:34

:-D :-D Kluci, budeme se tu hasterit, kdo co ma delsi? :-D :-D :-D

Mate to nekdo otestovany v C# ? Tedy ze pres program v C# lze odesilat email prave ze seznamu? Ono to ma prave problem s tim SMTP, protoze seznam je originalni a ma jinak resenou autentizaci... :(

Nahoru Odpovědět
12.10.2012 21:34
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:12.10.2012 21:53

Vlastně oba píšeme totéž... Je blbost řešt server, ve kterém schránku máš/ kam posíláš.

new System.Net.Mail.SmtpClient("host").Send(new System.Net.Mail.MailMessage("email odesílatele", "email příjemce")
{
    Subject = "Subject", Body = "Message text"
};);
 
Nahoru Odpovědět
12.10.2012 21:53
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Jančík:12.10.2012 22:29

Mělo by fungovat tohle:

SmtpClient smtp = new SmtpClient("smtp.seznam.cz", 25);

Dle toho co píšou zde: http://napoveda.seznam.cz/…serveru.html

Ale nezkoušel jsem. Každopádně v PHP mi to jde, tj. by v C# neměl být problém.

Nahoru Odpovědět
12.10.2012 22:29
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Jančík:12.10.2012 22:33

Jó a musí se něco povolit v nastavení emailu je POP3/IMAP. Pokud chceš mít přístup k těm mailům tak tam zaškrtni povolit IMAP.

Jinak, pokud jen chceš vystupovat pod danou e-mailovou adresou, tak jak říká matesax, můžeš zadat "od koho", "komu" a používat kterýkoliv SMTP server.

Nahoru Odpovědět
12.10.2012 22:33
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Mediel
Redaktor
Avatar
Mediel:15.10.2012 1:18

Já vám nevim, nějak mi to stále nejde. Na emailu v nastavení jsem to povolil, tedy povolil jsme protokol IMAP.

kód vypadá takto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            new System.Net.Mail.SmtpClient("smtp.seznam.cz", 25).Send(new System.Net.Mail.MailMessage("[email protected]","[email protected]")
            {
                Subject = "Subject", Body = "Message text"
            });
        }
    }
}

tedy pouze jsem doplnil váš kód a beztak to nefunguje, skončí to s výjimkou:

Mailbox unavailable. The server response was: 5.7.1 Not authenticated, please use AUTH first.

Nahoru Odpovědět
15.10.2012 1:18
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:15.10.2012 6:24
System.Net.NetworkCredential mailAuthentification = new System.Net.NetworkCredential("[email protected]", "heslo");
System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("smtp.seznam.cz", 25);

mailClient.EnableSsl = true;

mailClient.UseDefaultCredentials = false;

mailClient.Credentials = mailAuthentification;

mailClient.SendAsync(new System.Net.Mail.MailMessage("od koho", "kam")
{
    Subject = "Subject",
    Body = "Message text"
}, "xxx");
 
Nahoru Odpovědět
15.10.2012 6:24
Avatar
Mediel
Redaktor
Avatar
Mediel:15.10.2012 22:04

Ne :-D Proste se mi to nepovedlo zprovoznit :(

Nahoru Odpovědět
15.10.2012 22:04
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:15.10.2012 22:21

Tady se jen může pokazit doplnění správných údajů... (Tímto kódem odesílám emaily naprosto běžně.)

 
Nahoru Odpovědět
15.10.2012 22:21
Avatar
Mediel
Redaktor
Avatar
Mediel:15.10.2012 22:46

user: pokusCsharp
pass: pokusCsharp11

Ted jsme tedy vytvoril pokusny email, ze ktereho se pokusim odeslat email na tento vytvoreny email. Kod vypada takto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Net.NetworkCredential mailAuthentification = new System.Net.NetworkCredential("[email protected]m.cz", "pokusCsharp11");
            System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("smtp.seznam.cz", 25);

            mailClient.EnableSsl = true;

            mailClient.UseDefaultCredentials = false;

            mailClient.Credentials = mailAuthentification;

            mailClient.SendAsync(new System.Net.Mail.MailMessage("[email protected]", "[email protected]")
            {
                Subject = "Subject",
                Body = "Message text"
            }, "xxx");
        }
    }
}

ale zadny email neprisel... Co dety delam spatne?

Editováno 15.10.2012 22:48
Nahoru Odpovědět
15.10.2012 22:46
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:15.10.2012 22:54

No ta 3 x... :)

 
Nahoru Odpovědět
15.10.2012 22:54
Avatar
Mediel
Redaktor
Avatar
Odpovídá na matesax
Mediel:15.10.2012 22:55

A co mam dat misto tech 3x?

Nahoru Odpovědět
15.10.2012 22:55
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět
16.10.2012 5:20
Avatar
Mediel
Redaktor
Avatar
Odpovídá na matesax
Mediel:16.10.2012 14:21

Nefunguje mi to. :(

Ani kdyz doslovne okopiruji ukazku z toho webu, co jsi mi sem dal. A vyplnim ji podle mych predstav. Podelanej seznam! Nemuze byt normalni jako Gmail?

Nahoru Odpovědět
16.10.2012 14:21
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Jančík:16.10.2012 14:23

Uka, jak to máš. Hoď sem celej ten projekt. Třeba na DropBox v zipu.

Nahoru Odpovědět
16.10.2012 14:23
Zapomeň, že je to nemožné a udělej to ;)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Mediel
Redaktor
Avatar
Odpovídá na David Jančík
Mediel:16.10.2012 14:29

V ukazce na tom webu neni prihlaseni ke klientovi, zkusil jsme to vsak bez nej a psalo to 5.7.1 ze to chce autentifikaci. Vytvoril jsme tedy autentifikaci a ted to zas pise, ze se nezdarila... Dal bych prednost tomu kratsimu kodu od Matesaxe, ale tam zas nevim co strcit misto tech "xxx".

using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
namespace Examples.SmptExamples.Async
{
    public class SimpleAsynchronousExample
    {
        static bool mailSent = false;
        private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
        {
            // Get the unique identifier for this asynchronous operation.
            String token = (string)e.UserState;

            if (e.Cancelled)
            {
                Console.WriteLine("[{0}] Send canceled.", token);
            }
            if (e.Error != null)
            {
                Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
            }
            else
            {
                Console.WriteLine("Message sent.");
            }
            mailSent = true;
        }
        public static void Main(string[] args)
        {
            // Command line argument must the the SMTP host.
            SmtpClient client = new SmtpClient("smtp.seznam.cz",25);
            client.Credentials = new NetworkCredential("pokusCsharp", "pokusCsharp11");
            // Specify the e-mail sender.
            // Create a mailing address that includes a UTF8 character
            // in the display name.
            MailAddress from = new MailAddress("[email protected]","Martin Erdt", System.Text.Encoding.UTF8);
            // Set destinations for the e-mail message.
            MailAddress to = new MailAddress("[email protected]");
            // Specify the message content.
            MailMessage message = new MailMessage(from, to);
            message.Body = "This is a test e-mail message sent by an application. ";
            // Include some non-ASCII characters in body and subject.
            string someArrows = new string(new char[] { '\u2190', '\u2191', '\u2192', '\u2193' });
            message.Body += Environment.NewLine + someArrows;
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = "test message 1" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            // Set the method that is called back when the send operation ends.
            client.SendCompleted += new
            SendCompletedEventHandler(SendCompletedCallback);
            // The userState can be any object that allows your callback
            // method to identify this send operation.
            // For this example, the userToken is a string constant.
            string userState = "test message1";
            client.SendAsync(message, userState);
            Console.WriteLine("Sending message... press c to cancel mail. Press any other key to exit.");
            string answer = Console.ReadLine();
            // If the user canceled the send, and mail hasn't been sent yet,
            // then cancel the pending operation.
            if (answer.StartsWith("c") && mailSent == false)
            {
                client.SendAsyncCancel();
            }
            // Clean up.
            message.Dispose();
            Console.WriteLine("Goodbye.");
        }
    }
}
Nahoru Odpovědět
16.10.2012 14:29
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Mediel
David Jančík:16.10.2012 18:45

Tak jsem to zkoušel. A prý, že seznam.cz neumožňuje přístup ke svému SMTP serveru. Resp. ta metoda Send u C# SmtpClient potřebuje něco co seznam nedovoluje.

Takže to asi budeš muset posílat přes G-Mail a zadáš jako odesílatele e-mail seznamu nebo zkusit nějaký free smtp server.

Nahoru Odpovědět
16.10.2012 18:45
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:16.10.2012 19:10

Založ si email na gmailu a zařiď si přeposílání - a je to... :)

 
Nahoru Odpovědět
16.10.2012 19:10
Avatar
Mediel
Redaktor
Avatar
Mediel:16.10.2012 21:59

No ja si to myslel, ze seznam je proste na pytel :-D Ja se tady s tim morduju uz 3 den :-D diky kluci... Se sznamem jsem skoncil :-D

Nahoru Odpovědět
16.10.2012 21:59
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Kit
Redaktor
Avatar
Odpovídá na Mediel
Kit:16.10.2012 22:13

Svého času Seznam vyžadoval POP_before_SMTP. Možná už zrušili i tuto možnost.

Nahoru Odpovědět
16.10.2012 22:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Dostal
Redaktor
Avatar
David Dostal:19.2.2013 19:46

Hojky,
vím že tohle vlákno je už staré, ale třeba se to ještě někomu bude hodit. :)
Udělal jsem si do jedné aplikace třídu SeznamCz, kdyžtak jí sem můžu o víkendu hodit (píšu z mobilu), stačí říct. Ještě musím pošéfit přílohy, jinak by měla fungovat.

 
Nahoru Odpovědět
19.2.2013 19:46
Avatar
David Dostal
Redaktor
Avatar
David Dostal:19.2.2013 21:55

Ještě jednou jsem si přečetl svůj komentář a vidím, že není úplné zřejmé, jestli myslím aplikací nebo třídu. Na mysli jsem měl třídu.

 
Nahoru Odpovědět
19.2.2013 21:55
Avatar
David Dostal
Redaktor
Avatar
David Dostal:19.2.2013 21:57

Omlouvám se za doublepost, omylem jsem se dotknul displeje.

 
Nahoru Odpovědět
19.2.2013 21:57
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David Dostal
David Čápka:19.2.2013 21:59

Jo, určitě by se někomu hodila :)

Nahoru Odpovědět
19.2.2013 21:59
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
David Dostal
Redaktor
Avatar
David Dostal:19.2.2013 22:01

Tak uz to zase zmizlo, omlovam se za spam.

 
Nahoru Odpovědět
19.2.2013 22:01
Avatar
David Dostal
Redaktor
Avatar
David Dostal:19.2.2013 22:03

Ok, v patek nebo v sobotu se podelim. To me tesi, ze mozna najde jeste vyuziti. :)

 
Nahoru Odpovědět
19.2.2013 22:03
Avatar
Mediel
Redaktor
Avatar
Odpovídá na David Dostal
Mediel:23.2.2013 13:06

Ahoj, mohl bys jí sem prosím hodit? :) Určitě to někomu pomůže :) Třeba mě, i když tedy vše řeším už přes Gmail :D

Nahoru Odpovědět
23.2.2013 13:06
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Dostal
Redaktor
Avatar
David Dostal:23.2.2013 15:23

Budu se snažit to sem do večera dát. Mám trochu problémy při posílání více příloh najednou.

 
Nahoru Odpovědět
23.2.2013 15:23
Avatar
David Dostal
Redaktor
Avatar
David Dostal:23.2.2013 19:19

Tak, máš to tady: https://www.dropbox.com/…b/19u-AZhvoi
Použití:

SeznamCz seznam = new SeznamCz();
seznam.mailMessage = nejakaTvojeMailMessage;
seznam.networkCredential = tvojeNetworkCredentials;
seznam.Odesli();
 
Nahoru Odpovědět
23.2.2013 19:19
Avatar
Mediel
Redaktor
Avatar
Odpovídá na David Dostal
Mediel:23.2.2013 19:35

Díky, zkusím :)

Nahoru Odpovědět
23.2.2013 19:35
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Jeninek
Neregistrovaný
Avatar
Jeninek:27.2.2013 21:46

ahojky zkuste pouzit misto
SmtpClient client = new SmtpClient("smtp­.seznam.cz",25);

tohle

SmtpClient client = new SmtpClient("mx1­.seznam.cz",25);

seznam je proste shit
jinak samozrejme jede bez ssl :(

 
Nahoru Odpovědět
27.2.2013 21:46
Avatar
HANiS
Neregistrovaný
Avatar
HANiS:16.3.2013 23:14

Jeninek: Díky!!! mx1.seznam.cz místo smtp.seznam.cz mi zabralo

 
Nahoru Odpovědět
16.3.2013 23:14
Avatar
HANiS
Neregistrovaný
Avatar
Odpovídá na Jeninek
HANiS:16.3.2013 23:14

Díky!!! mx1.seznam.cz místo smtp.seznam.cz mi zabralo

 
Nahoru Odpovědět
16.3.2013 23:14
Avatar
Mediel
Redaktor
Avatar
Odpovídá na David Dostal
Mediel:19.3.2013 21:34

Ahoj, tak me napadlo, nechtel bys udelat nejaky jednoduchy EmailSender ze ktereho by to slo odesilat vsude? Jako demonstraci tve tridy... Urite, by to nekdo rad vyuzil :) Nebo spis si prohlid za ucelem pochopeni kodu, tak by bylo dobre to i hodne komentovat :)

Nahoru Odpovědět
19.3.2013 21:34
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Dostal
Redaktor
Avatar
Odpovídá na Mediel
David Dostal:19.3.2013 22:08

Jasně, udělám. Bude to ale chvíli trvat, momentálně dělám na třech projektech zároveň a ještě k tomu mám přístup k počítači jen o víkendu. Určitě ale zařadím do fronty.

 
Nahoru Odpovědět
19.3.2013 22:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 40 zpráv z 40.