954,577 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

email generation problem

I have email sending problem through ASP.Net by the following class. Email goes fine on our own server but it doesn't send email on other servers especially yahoo and hotmail. If anybody helps whats the problem

//////////////email class/////////////////////

private void SendMail(string mailBody)
    {

        //Create message object and populate w/ data from form
        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
        message.From = new System.Net.Mail.MailAddress("webmaster@nust.edu.pk");

        message.To.Add(txtemail.Text.Trim()); 
        message.Subject = "UG Admission 2009";
        message.Body = mailBody;
        message.IsBodyHtml=true;

        //Setup SmtpClient to send email. Uses web.config settings.
        System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();

        //Error handling for sending message
        try
        {
            smtpClient.Send(message);
            //Exception contains information on each failed receipient
        }

        catch (System.Net.Mail.SmtpFailedRecipientsException recExc)
        {
            for (int recipient = 0; recipient < recExc.InnerExceptions.Length - 1; recipient++)
            {
                System.Net.Mail.SmtpStatusCode statusCode;
                //Each InnerException is an System.Net.Mail.SmtpFailed RecipientException
                statusCode = recExc.InnerExceptions[recipient].StatusCode;

                if ((statusCode == System.Net.Mail.SmtpStatusCode.MailboxBusy) || (statusCode == System.Net.Mail.SmtpStatusCode.MailboxUnavailable))
                {
                    //Log this to event log: recExc.InnerExceptions[recipient].FailedRecipient
                    System.Threading.Thread.Sleep(5000);
                    smtpClient.Send(message);
                }
                else
                {
                    //Log error to event log.
                    Response.Write(recExc.InnerExceptions[recipient].StatusCode);// or use statusCode);
                }

            }
        }
        //General SMTP execptions
        catch (System.Net.Mail.SmtpException smtpExc)
        {
            //Log error to event log using StatusCode information in
           // smtpExc.StatusCode;
        }
        catch (Exception ex)
        {
            //Log error to event log.
        }
    }


///////////////////end code/////////////////////////////

Thanks for your suggestion
Shakeel ur Rehman

shki_80
Newbie Poster
2 posts since Mar 2009
Reputation Points: 10
Solved Threads: 0
 

hi,

where did u declare smtp host.

greeny_1984
Posting Whiz
372 posts since Apr 2007
Reputation Points: 25
Solved Threads: 29
 

I have email sending problem through ASP.Net by the following class. Email goes fine on our own server but it doesn't send email on other servers especially yahoo and hotmail. If anybody helps whats the problem

//////////////email class///////////////////// private void SendMail(string mailBody) {

//Create message object and populate w/ data from form System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); message.From = new System.Net.Mail.MailAddress("webmaster@nust.edu.pk");

message.To.Add(txtemail.Text.Trim()); message.Subject = "UG Admission 2009"; message.Body = mailBody; message.IsBodyHtml=true;

//Setup SmtpClient to send email. Uses web.config settings. System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();

//Error handling for sending message try { smtpClient.Send(message); //Exception contains information on each failed receipient }

catch (System.Net.Mail.SmtpFailedRecipientsException recExc) { for (int recipient = 0; recipient < recExc.InnerExceptions.Length - 1; recipient++) { System.Net.Mail.SmtpStatusCode statusCode; //Each InnerException is an System.Net.Mail.SmtpFailed RecipientException statusCode = recExc.InnerExceptions[recipient].StatusCode;

if ((statusCode == System.Net.Mail.SmtpStatusCode.MailboxBusy) || (statusCode == System.Net.Mail.SmtpStatusCode.MailboxUnavailable)) { //Log this to event log: recExc.InnerExceptions[recipient].FailedRecipient System.Threading.Thread.Sleep(5000); smtpClient.Send(message); } else { //Log error to event log. Response.Write(recExc.InnerExceptions[recipient].StatusCode);// or use statusCode); }

} } //General SMTP execptions catch (System.Net.Mail.SmtpException smtpExc) { //Log error to event log using StatusCode information in // smtpExc.StatusCode; } catch (Exception ex) { //Log error to event log. } }

///////////////////end code/////////////////////////////

Thanks for your suggestion Shakeel ur Rehman


hi
please use this code

public bool SendMail()
    {
        try
        {
            string sPortNumber = ConfigurationManager.AppSettings["PortNumber"];//25 useport number  25
            System.Web.Mail.MailMessage msg = new MailMessage();
            msg.BodyFormat = System.Web.Mail.MailFormat.Html;
            //System.Web.Mail.MailAttachment atchment = new MailAttachment("abc");

            msg.To = to;    //email;
            msg.Cc = Cc;
            msg.From = from;
            msg.Subject = subject;
            msg.Body = message;
            msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", sPortNumber); 
            int j;
            if (m_attachments.Count > 0)
            {
                foreach (string strAttachment in m_attachments)
                {
                    System.Web.Mail.MailAttachment atchment = new MailAttachment(strAttachment);
                    msg.Attachments.Add(atchment);
                }
            }
            SmtpMail.SmtpServer = ConfigurationManager.AppSettings["SMTPServerName"].ToString();//Smtp Mail Server Name
            SmtpMail.Send(msg);
        }
        catch(Exception ex)
        {
            try
            {
                bool bmsgSendFlag;
                ExceptionBase objEx = new ExceptionBase();
                bmsgSendFlag = objEx.LogErrorWithoutSendingMail(ex, this.ToString());
            }
            catch( Exception ex1)
            {
            }

            msgSendFlag = false;           
        }
        return msgSendFlag; 
    }
LilaDangi
Newbie Poster
2 posts since Jun 2007
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You