<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31547.aspx</link><pubDate>Mon, 07 May 2007 23:29:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31547</guid><dc:creator>pan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31547.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31547</wfw:commentRss><description>&lt;P&gt;μα θα ανοίξω το log αρχείο θα δω που σταμάτησε σε ποια εγγραφή δηλ και απο κει και πέρα θα συνεχίσω. Μόνο εγώ την (θα) τρέχω την εφαρμογή. Με χρήση βάσης καταλαβαίνω απόλυτα ότι αποφεύγω όλην αυτήν την περιττή διαδικασία(άνοιγμα - κλείσιμο αρχείου - ξαναφόρτωμα νέου αρχείου) και είναι η πιο σωστή λύση αλλά στην παρούσα φάση δυστυχώς δεν γίνεται να υλοποιηθεί με αυτόν τον τρόπο.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31544.aspx</link><pubDate>Mon, 07 May 2007 23:22:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31544</guid><dc:creator>manosB</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31544.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31544</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;KelMan:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;font face="Tahoma" size="2"&gt;Ωστόσο, όταν συμβεί το λάθος η διαδικασία αυτή δεν μπορεί να συνεχιστεί από εκεί που σταμάτησε. Όσοι έχουν λάβει e-mail επιτυχώς, θα ξαναλάβουν. &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;&lt;p&gt;Συμφωνώ και επαυξάνω. Πρέπει να έχεις διαδικασία επαναποστολής των email Που δεν στάλθηκαν.&lt;/p&gt;

&lt;p&gt;Να σαι δω τι θα κάμεις σε καμία αναβάθμιση του &lt;span&gt;Exchange&lt;/span&gt;...&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt; αν δεν έχεις διαδικασία επαναποστολής.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Η λύση του πίνακα κουβά στη βάση για εμένα είναι η καλύτερη.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31530.aspx</link><pubDate>Mon, 07 May 2007 21:22:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31530</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31530.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31530</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Ωστόσο, όταν συμβεί το λάθος η διαδικασία αυτή δεν μπορεί να συνεχιστεί από εκεί που σταμάτησε. Όσοι έχουν λάβει e-mail επιτυχώς, θα ξαναλάβουν. &lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31528.aspx</link><pubDate>Mon, 07 May 2007 21:06:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31528</guid><dc:creator>pan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31528.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31528</wfw:commentRss><description>A μάλιστα! Τώρα κατάλαβα. &lt;STRONG&gt;10000 ευχαριστώ&lt;/STRONG&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31527.aspx</link><pubDate>Mon, 07 May 2007 20:54:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31527</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31527.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31527</wfw:commentRss><description>&lt;p&gt;Εδώ μπορείς να διαβάσεις κάποια πράγματα για τη διαχείριση exceptions στο .NET. Είναι ένα αρκετά παλιό έγγραφο το οποίο όμως θυμάμαι ότι ήταν πολύ κατατοπιστικό όταν είχα ξεκινήσει να ασχολούμαι με το .NET: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms954599.aspx" target="_blank"&gt;Microsoft Patterns &amp;amp; Practices - Exception Management Architecture Guide&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Κατά τα άλλα ρίξε και μια ματιά στην try/catch στο MSDN documentation και θα καταλάβεις πως χρησιμοποιείται.&lt;/p&gt;&lt;p&gt;Το SmtpException κληρονομεί το Exception και φέρει μαζί του κάποια επιπλέον πληροφορία. Εφόσον δεν την χρησιμοποιείς, δε χρειάζεται να κάνεις catch και το SmtpException και το Exception. Αρκεί μόνο το δεύτερο.&lt;/p&gt;&lt;p&gt;Επίσης, εφόσον σταματάς τη διαδικασία όταν συμβεί ένα exception, μπορείς πολύ εύκολα να το εμφανίσεις και σε ένα message box. Έτσι ώστε ο χειριστής θα δει το πρόβλημα χωρίς να ανατρέξει στο αρχείο. Το αρχείο μπορείς να κρατήσεις για ιστορικούς λόγους.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Γενικά χρησιμοποίησε καλύτερα ονόματα μεταβλητών, ακόμα και για ένα τόσο μικρό πρόγραμμα. Το όνομα fff δεν βοηθάει κανένα.&lt;br&gt;&lt;/p&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31526.aspx</link><pubDate>Mon, 07 May 2007 20:35:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31526</guid><dc:creator>pan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31526.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31526</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;Ευχαριστώ για τις προτάσεις σας&lt;/STRONG&gt;. Επειδή δεν έχω μεγάλη ευχέρεια με τα try-catch-finally. Εφτιαξα το παρακάτω. Είναι αρκετό ώστε να αποφύγω όλα τα μπερδέματα ??&lt;/P&gt;
&lt;P&gt;Στην πραγματικότητα ανοίγω ένα αρχείο που γράφω σαν log οτιδηποτε γίνεται. Αν πάει καλά το email γράφετε στο αρχείο. Δεν θέλω να χρησιμοποιήσω βάση ουτε να να στείλω μαζικά ανα 50 ή 100 τα emails. Αν κάτι στραβώσει,&amp;nbsp;έχω προσθέσει&amp;nbsp;2 διαφορετικά exceptions, όπου καταγράφω στο αρχείο οτι και αν συμβεί και στο finally τσεκάρω και αναλόγως κάνω Exit από την εφαρμογή.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ Πολύ&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:#f2f2f2;" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt;5&lt;BR&gt;6&lt;BR&gt;7&lt;BR&gt;8&lt;BR&gt;9&lt;BR&gt;10&lt;BR&gt;11&lt;BR&gt;12&lt;BR&gt;13&lt;BR&gt;14&lt;BR&gt;15&lt;BR&gt;16&lt;BR&gt;17&lt;BR&gt;18&lt;BR&gt;19&lt;BR&gt;20&lt;BR&gt;21&lt;BR&gt;22&lt;BR&gt;23&lt;BR&gt;24&lt;BR&gt;25&lt;BR&gt;26&lt;BR&gt;27&lt;BR&gt;28&lt;BR&gt;29&lt;BR&gt;30&lt;BR&gt;31&lt;BR&gt;32&lt;BR&gt;33&lt;BR&gt;34&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;for&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; k &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0; k &amp;lt; listBox1.Items.Count; k++)&lt;BR&gt;  {&lt;BR&gt;        &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;try&lt;/SPAN&gt;&lt;BR&gt;        {&lt;BR&gt;          MailAddress Bcc &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MailAddress(listBox1.Items[k].ToString());&lt;BR&gt;          message.Bcc.Add(Bcc);&lt;BR&gt;           server.Send(message);&lt;BR&gt;           sw.WriteLine(Bcc);&lt;BR&gt;           message.Bcc.Clear();&lt;BR&gt;           successSend += 1;&lt;BR&gt;           fff &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0;&lt;BR&gt;         }&lt;BR&gt;         &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;catch&lt;/SPAN&gt; (SmtpException ex)&lt;BR&gt;          {&lt;BR&gt;            failemail += 1;&lt;BR&gt;            logException &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"SMTP= "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; listBox1.Items[k].ToString() &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;" // "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; ex.Message.ToString(); &lt;BR&gt;            sw.WriteLine(logException);&lt;BR&gt;            fff &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 1;&lt;BR&gt;             &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;throw&lt;/SPAN&gt; ex;&lt;BR&gt;           }&lt;BR&gt;         &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;catch&lt;/SPAN&gt; (Exception ex2)&lt;BR&gt;          {&lt;BR&gt;            failemail += 1;&lt;BR&gt;            logException &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"EXCP= "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; listBox1.Items[k].ToString() &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;" // "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; ex2.Message.ToString();&lt;BR&gt;            sw.WriteLine(logException);&lt;BR&gt;            fff &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 1;&lt;BR&gt;            &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;throw&lt;/SPAN&gt; ex2;&lt;BR&gt;          }&lt;BR&gt;          &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;finally&lt;/SPAN&gt;&lt;BR&gt;           {&lt;BR&gt;              &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (fff !&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0) { Application.Exit(); }&lt;BR&gt;           }&lt;BR&gt;&lt;BR&gt;  }&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;//end of for&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31488.aspx</link><pubDate>Mon, 07 May 2007 01:20:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31488</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31488.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31488</wfw:commentRss><description>&lt;P&gt;Τα βάσανά σου οφείλονται στη λανθασμένη προσέγγιση του θέματος... &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;
&lt;P&gt;Ο παραπάνω κώδικας είναι μια χαρά ως proof-of-point του θέματος "στέλνω προγραμματιστικά e-mail". Από εκεί και πέρα υπάρχει αρκετός δρόμος από το proof-of-point μέχρι το line-of-business. Στο line-of-business εμπλέκονται όλα αυτά τα θέματα που αντιμετώπισες όταν σταμάτησαν τα πράγματα να πηγαίνουν μια χαρά. Πρέπει λοιπόν να σκεφτείς πως στην εφαρμογή σου, πέρα από το core ("στέλνω προγραμματιστικά e-mail") θα διασφαλίσεις ότι αν κάτι πάει στραβά αφενός θα μάθεις τι ήταν αυτό και αφετέρου αν δεν ολοκληρωθεί όλη η διαδικασία θα μπορέσεις να συνεχίσεις από εκεί που είχες μείνει.&lt;/P&gt;
&lt;P&gt;Στο παραπάνω πλαίσιο λοιπόν, θα πρέπει να βρεις ποιές είναι οι περιπτώσεις να λάβεις exception κατά το Mail.Send() και τι θα συμβαίνει σε κάθε μία από αυτή. Υποθέτω θα πρέπει να καταγράφονται τα πάντα σε κάποιο log, ωστόσο πέρα από αυτό, πιθανώς κάποια exceptions να πρέπει να τερματίζουν τη διαδικασία και κάποια άλλα να κάνουν retry. Επιπρόσθετα, θα πρέπει να εγκαταλείψεις το "στέλνω e-mail σε όλους όσους είναι στο listbox" και να υλοποιήσεις μία&amp;nbsp;λογική του τύπου "στέλνω e-mail σε όσους είναι στον πίνακα Χ, σε batches των 100 και μόλις τελειώσει κάθε batch, ενημερώνω τη βάση για τις διευθύνσεις που έφυγε το e-mail". Έτσι θα μπορείς κάθε φορά όταν ζητάς τις διευθύνσεις να προσθέσεις ένα φίλτρο για να μην πάρεις και αυτές στις οποίες έχεις στείλει ήδη e-mail.&lt;/P&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31483.aspx</link><pubDate>Sun, 06 May 2007 20:58:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31483</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31483.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31483</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;Α)&lt;/b&gt; Όντως είναι πολύ λάθος ο τρόπος που χειρίζεσαι το exception! Ο κώδικάς σου, όπως είναι γραμμένος, απλά κάνει ότι δε συμβαίνει τίποτα. Δεν υπάρχει χειρότερος τρόπος να χειριστείς ένα exception! Στο catch πρέπει οπωσδήποτε να κάνεις κάτι με αυτό. Ορίστε μερικές επιλογές:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;να το πετάξεις προς τα έξω (throw ex;) για να το πιάσει το runtime&lt;/li&gt;&lt;li&gt;να το καταγράψεις σε ένα αρχείο log&lt;/li&gt;&lt;li&gt;να το εμφανίσεις στην οθόνη (π.χ. 'This exception occured ' + ex.Message + '. Would you like to continue?')&lt;/li&gt;&lt;li&gt;...να κάνεις κάτι τέλος πάντων με αυτό, όχι να κάνεις ότι δε συνέβει τίποτα!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Β) &lt;/b&gt;Επίσης είναι λάθος να βάζεις τόσο &lt;b&gt;μεγάλο timeout&lt;/b&gt;. Μπορεί αυτός να είναι και ο λόγος που κόλησε το πρόγραμμά σου. Το timeout, είτε είναι database connection timeout, database command timeout, smtp timeout κλπ. είναι για να κάνεις ένα πρόγραμμα να ξεκολήσει αν ένας server δεν ανταποκρίνεται, πετώντας προς τα έξω ένα timeout exception. Βάζοντας τόσο μεγάλο timeout (3600000 msec = 1 ώρα!) ουσιαστικά λες στον smtp cilent να περιμένει 1 ώρα μέχρι να ανταποκριθεί ο smtp server. Αν ο smtp server είναι κατεβασμένος ή αν ο client έχει κάποιο πρόβλημα δικτύου, τότε θα περιμένεις 1 ώρα μέχρι να το αντιληφθείς! Και λαμβάνοντας υπόψη ότι έχεις ένα loop με χιλιάδες αποστολές e-mail, θα περιμένεις 1ώρα*χιλιάδες φορές! Εφόσον ο smtp server είναι στο τοπικό δίκτυο, ένα timeout της τάξης των 30 δευτερολέπτων είναι αρκετό. Άντε το πολύ 1 λεπτό. Αλλά σε κάθε περίπτωση, αν ο server δεν ανταποκριθεί για ένα μήνυμα τότε πρέπει να εμφανίζεις το exception κάπου και να σταματάς τη διαδικασία αποστολής!&lt;/p&gt;&lt;p&gt;&lt;b&gt;Γ)&lt;/b&gt; Νομίζω κατά τα άλλα ότι εφόσον βάζεις τον αποστολέα στο πεδίο BCC (και πολύ σωστά κάνεις για μια τόσο μαζική διαδικασία αποστολής e-mail), θα πρέπει να βάζεις περισσότερους από έναν και να στέλνεις το ίδιο μήνυμα, με μιά εντολή server.send. Π.χ. θα μπορούσες να στέλνεις το μήνυμα σε 50 παραλήπτες ή 100 με ένα send. Θα μειώσεις αρκετά το χρόνο εκτέλεσης.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Δ)&lt;/b&gt; Κάτι πολύ σημαντικό! Το ίδιο bug σε ένα κομμάτι κώδικα μπορεί να είναι από ασήμαντο έως και να ξεκινήσει τον τρίτο παγκόσμιο πόλεμο! Το bug που έχεις εσύ στον κώδικά σου έχει στείλει χιλιάδες λάθος e-mail σε πελάτες της εταιρείας σου. Έχει ενοχλήσει πολλούς από αυτούς, ενώ φαντάζομαι ότι το domain name της εταιρείας σου δεν είναι και ότι πιο ευχάριστο για ένα spam filter! Μπορεί να μην είναι και αφορμή για πόλεμο, αλλά είναι αρκετά σημαντικό!&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31482.aspx</link><pubDate>Sun, 06 May 2007 20:20:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31482</guid><dc:creator>Pak</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31482.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31482</wfw:commentRss><description>O pak είμαι εγώ!! Ο από πάνω είναι ο pan!!!&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;</description></item><item><title>Απ: SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31481.aspx</link><pubDate>Sun, 06 May 2007 19:28:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31481</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31481.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31481</wfw:commentRss><description>Αυτό μου θυμίζει πολύ ένα παρόμοιο πρόβλημα που είχα αντιμέτωπίσει κι εγώ, πρίν πολλά χρόνια, γράφοντας σε απλό ASP. Και τότε συνέβαινε ακριβώς αυτό που περιγράφεις με τον virtual SMTP του IIS, και το CDONTS.MailMessage object. Κι αν δεν κάνω λάθος, αυτή είναι η βιβλιοθήκη που χρησιμοποιεί ο SmtpClient "απο κάτω".&lt;br&gt;&lt;br&gt;Τότε ξεπεράσαμε το πρόβλημα σταματώντας να χρησιμοποιούμε CDONTS, και το γυρίσαμε σε κάποια άλλη βιβλιοθήκη. Είναι πολύ δύστροπο το CDONTS ( &lt;i&gt;η για να το θέσω καλύτερα ... μάλλον .. κακομαθημένο&lt;/i&gt; :D )&lt;br&gt;&lt;br&gt;Καλή τύχη pak, δε σε ζηλεύω φίλε. Είναι απο τα πιο "σπαστικά" προβλήματα στον κόσμο !&lt;br&gt;</description></item><item><title>SOS!!!  Email Sending</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31480.aspx</link><pubDate>Sun, 06 May 2007 18:11:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31480</guid><dc:creator>pan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31480.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=31480</wfw:commentRss><description>&lt;P&gt;Καλημέρα&lt;/P&gt;
&lt;P&gt;Θέλω την βοήθεια σας και να μου πείτε αν έχω λάθος στον κώδικα. Χρησιμοποιώ αυτήν την mini εφαρμογή σε εβδομαδιαία βάση&amp;nbsp;επι 1.5 χρόνο για να στέλνω&amp;nbsp;μαζικά email BCC (αλλα ενα - ενα) σε πελάτες της εταιρίας που εργαζομαι. Τα emails που φορτώνω στο listbox1 είναι μοναδικά, πολλά όμως από αυτά δεν υπάρχουν (ή εχουν γίνει expired ή έχουν full mailbox). H λίστα που στέλνω κάθε φορά είναι γύρω στις 10.000 emails. Τo queue του server&amp;nbsp;χωράει άνετα πάνω από 30.000&amp;nbsp;emails. Οπως τα στέλνω δεν περιμένω να πάρω απάντηση από τον mail server επειδή έχει μεγάλο queue.&lt;/P&gt;
&lt;P&gt;Μέχρι τώρα δεν είχε δημιουργηθεί πρόβλημα. Συνέβη όμως τώρα. Έστειλα σε μία λίστα 5.000 πελατών και δυστυχώς κόλλησε κάτι. Το πρόγραμμα δεν τελείωσε ποτέ την loop. Το ξέρω γιατί το τελευταίο email ήταν το δικό μου στην λίστα και εγώ ποτέ δεν το έλαβα. Οπότε αναγκάστικα να το&amp;nbsp;κλείσω το πρόγραμμα&amp;nbsp;με το&amp;nbsp;CTRL+ALT-DEL.&amp;nbsp; Δεν ξέρω αν είναι από την μεριά μου είναι το λάθος δεδομενου ότι δεν έχει ξανασυμβεί μέχρι τώρα. Πολλοί παραλήπτες έλαβαν πάνω από 100 φορές το ίδιο email. Άλλοι το έλαβαν 180, άλλοι 70, άλλοι 500 φορές το ίδιο email και άλλοι 1000 φορές !!!.&lt;/P&gt;
&lt;P&gt;Θα ήθελα να μου πείτε αν έχω κάνει κάτι λαθος στον κώδικα και αν μπορώ να πιάσω κάπως το exception. To λέω αυτό γιατί πολλοί προγραμματιστές μου είπαν ότι είναι λάθος όπως χειρίζομαι το exception και την εντολή Send. Εγω δοκίμασα αμέσως μετά να ξανα-τρέξω το πρόγραμμα και αντι να στέλνω το email&amp;nbsp; απλά να&amp;nbsp;τυπώνω κάθε email που διαβάζω από το listbox1 σε ένα textbox form. Και η loop τελείωσε αμέσως και μου τύπωσε όλα τα email ένα ενα κανονικα. Αμέσως μετά από αυτό δοκιμάσα να στείλω 3000 email σε 5 διαφορετικά δικα μου account και επίσης τα έλαβα όλα σωστά (από μία φορά) και η loop τελείωσε αμέσως. Υπάρχει περίπτωση να κόλλησε ο SmtpClient mail server ??&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Ευχαριστώ πολύ&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:#f2f2f2;" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt;5&lt;BR&gt;6&lt;BR&gt;7&lt;BR&gt;8&lt;BR&gt;9&lt;BR&gt;10&lt;BR&gt;11&lt;BR&gt;12&lt;BR&gt;13&lt;BR&gt;14&lt;BR&gt;15&lt;BR&gt;16&lt;BR&gt;17&lt;BR&gt;18&lt;BR&gt;19&lt;BR&gt;20&lt;BR&gt;21&lt;BR&gt;22&lt;BR&gt;23&lt;BR&gt;24&lt;BR&gt;25&lt;BR&gt;26&lt;BR&gt;27&lt;BR&gt;28&lt;BR&gt;29&lt;BR&gt;30&lt;BR&gt;31&lt;BR&gt;32&lt;BR&gt;33&lt;BR&gt;34&lt;BR&gt;35&lt;BR&gt;36&lt;BR&gt;37&lt;BR&gt;38&lt;BR&gt;39&lt;BR&gt;40&lt;BR&gt;41&lt;BR&gt;42&lt;BR&gt;43&lt;BR&gt;44&lt;BR&gt;45&lt;BR&gt;46&lt;BR&gt;47&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; button1_Click(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; sender, System.EventArgs e) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;//send newsletter&lt;/SPAN&gt;&lt;BR&gt;{&lt;BR&gt;&lt;BR&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller");      &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;      MailAddress from &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MailAddress(textBox3.Text.ToString(), textBox2.Text.ToString());&lt;BR&gt;      MailMessage message &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MailMessage();&lt;BR&gt;      message.From &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; from;&lt;BR&gt;      message.Subject &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; textBox5.Text.ToString(); &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// TEST&lt;/SPAN&gt;&lt;BR&gt;      message.IsBodyHtml &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;true&lt;/SPAN&gt;;&lt;BR&gt;      message.Body &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; textBox4.Text.ToString(); &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// HTML&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// Mou emfanizoun se dyo label posa pigan kai posa ekanan failed (aploi counter)&lt;/SPAN&gt;&lt;BR&gt;       &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; successSend &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0; &lt;BR&gt;       &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; failemail &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0;  &lt;BR&gt;&lt;BR&gt;            SmtpClient server &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; SmtpClient();&lt;BR&gt;            server.Host &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"xxx.xxx.xxx.xxx"&lt;/SPAN&gt;; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// IP tou mail server.&lt;/SPAN&gt;&lt;BR&gt;            server.Timeout &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 3600000;&lt;BR&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;for&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; k=0; k&amp;lt;listBox1.Items.Count; k++)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;try&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;  MailAddress Bcc &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MailAddress(listBox1.Items[k].ToString());&lt;BR&gt;&amp;nbsp;&amp;nbsp;  message.Bcc.Add(Bcc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;  server.Send(message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;  message.Bcc.Clear();&lt;BR&gt;&amp;nbsp;&amp;nbsp;  successSend += 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;catch&lt;/SPAN&gt; (SmtpException ex) &lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; failemail += 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;finally&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;}&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;//end of for&lt;/SPAN&gt;&lt;BR&gt; label7.Text += &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"  Total Send: "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; successSend.ToString();&lt;BR&gt; label8.Text += &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"  Total Failed: "&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; failemail.ToString();&lt;BR&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;} &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;//end of button1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;</description></item></channel></rss>