Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

How to send emails using C# code

Posted on 2013-01-17
2
Medium Priority
?
296 Views
Last Modified: 2013-01-17
I have an C# console application that quieres a database to get the names of sales people in different departments to send them emails. However the emails are not being sent because the TO and CC field are not in the correct email format.
EX: Sales prerson name: John Smith -> from Query in stored proc
John Smith needs to be in this format so that he can get the email: jsmith@companyA.com.

What I am currently doing is get the name and then adding the @companyA.com which is not the correct format to send and email.
My Code is listed below --- Please help!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Data.SqlTypes;

namespace EmailAEConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection conn = new SqlConnection("Data Source=ServerName;Initial Catalog=DataBaseName;User ID=ID;Password=Password");
            SqlCommand command = new SqlCommand("StoredProcName", conn);

            try
            {
                command.CommandType = CommandType.StoredProcedure;

                //Add data to DataTable
                DataTable dtbItems = new DataTable();
                conn.Open();

                using (SqlDataAdapter sda = new SqlDataAdapter(command))
                    sda.Fill(dtbItems);
                {
                    //GATHER OPP DATA
                    {
                        //Loop thru all the properties
                        foreach (DataRow row in dtbItems.Select())
                        {
                            string oppSalesPersonTeamAName = Convert.ToString(row["salespersonATeamName"]);
                            string oppSalesPersonATeamManagerName = Convert.ToString(row["salespersonAManagerName"]);
                            string oppIAMName = Convert.ToString(row["SalesPersonTeamBName"]);
                           ["estimatedclosedate"]);

                            {
                                //****** NEED TO ADD "FOR EACH HERE ******
                                MailMessage mailAE = new MailMessage();

                                mailAE.From = new MailAddress("autogeneratedsystem@companyA.com"); 
                                mailAE.To.Add(oppSalesPersonTeamAName + "@companyA.com");
                                mailAE.To.Add(oppSalesPersonTeamBName + "@companyA.com");
                                mailAE.CC.Add(oppSalesPersonTeamAManagerName + "@companyA.com");
                                mailAE.Subject = " ****Warning****  Date Close (PO In) is estimated to close in the next 5 days: " + oppEstCloseDate.ToShortDateString() + "****Warning****";
                                mailAE.IsBodyHtml = true;
                                mailAE.BodyEncoding = System.Text.Encoding.UTF32;
                                mailAE.Body += "<br>Account Executive: " + oppSalesPersonTeamAName ;
                                mailAE.Body += "<br>IAM: " + oppSalesPersonTeamBName ;
                                mailAE.Body += "<br>Estimated Close Date: " + oppEstCloseDate.ToShortDateString();
                                mailAE.Body += "<br>";

                                SmtpClient s = new SmtpClient();
                                MailMessage m = new MailMessage();
                                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
                                smtp.Host = "smtphostname";
                                smtp.Port = 25;
                                smtp.Send(mailAE);
                            }

                              conn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERROR MESSAGE: " + ex.Message);
                conn.Close();
            }
        }
    }
}

Open in new window

0
Comment
Question by:newjeep19
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 2000 total points
ID: 38788249
so, you need to transform "John Smith" into "jsmith" ?

you could do this in the stored procedure or in the c# code, nothing too complex?
find the first space, and from that part:
* left to it, take only the first character, lowercase
* all right to it, lowercase
could be done with regular expression or with "brute force" code:
string short_name = oppSalesPersonTeamAName.Substring(0,1).ToLower() + oppSalesPersonTeamAName.Substring(oppSalesPersonTeamAName.IndexOf(" ")+1).ToLower();

Open in new window

0
 

Author Comment

by:newjeep19
ID: 38788829
Works great thanks for the help......still new to C#
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question