Eternia Celes
Eternia Celes

Reputation: 25

An invalid character was found in the mail header: ';'

error on this line "message.To.Add(strCommandText);" when I try to take the email data from the database to send an email.


public partial class beforeLogin_Auto_StaffPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

}
protected void btnApprove_Click(object sender, EventArgs e)
{
    string approve = "Approve";

    string strConnectionString = ConfigurationManager.ConnectionStrings["ChadBankConnectionString"].ConnectionString;
    SqlConnection myConnection = new SqlConnection(strConnectionString);

    myConnection.Open();

    string strCommandText3 = "UPDATE AutoLoan SET autoStatus ='" + approve + "'WHERE userID= '" + Session["userID"] + "';";
    SqlCommand myCommand3 = new SqlCommand(strCommandText3, myConnection);
    myCommand3.ExecuteNonQuery();

    string strCommandText = "SELECT custEmail From Customer WHERE userID= '" + Session["userID"] + "';";
    SqlCommand myCommand = new SqlCommand(strCommandText, myConnection);
    myCommand.ExecuteNonQuery();

    string strCommandText1 = "SELECT loginName From Customer WHERE userID= '" + Session["userID"] + "';";
    SqlCommand myCommand1 = new SqlCommand(strCommandText1, myConnection);
    myCommand1.ExecuteNonQuery();

    NetworkCredential myCred = new NetworkCredential("[email protected]", "627726627");
    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add(strCommandText);
    message.From = new MailAddress("[email protected]");
    message.Subject = "CHAD Bank: Auto Loan Application Approved";
    message.Body = "Hi " + strCommandText1 + "," + Environment.NewLine + Environment.NewLine +
        "Your application for your auto loan are approved, payment will start on the next month";
    SmtpClient client = new SmtpClient("smtp.gmail.com");
    client.Port = 587;
    client.Credentials = myCred;
    client.EnableSsl = true;
    client.Send(message);

    myConnection.Close();

}
protected void gvDetail_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = gvDetail.SelectedRow;

    Session["userID"] = row.Cells[10].Text;

}

}

Upvotes: 1

Views: 5795

Answers (2)

Michael
Michael

Reputation: 173

Environment: MSSQL / .NET (v4.5+)

Been hunting down the poster's error for a bit today. And while I know this may not be relevant for the poster, it may be relevant for another visitor with the same error.

If you copied a database, and changed the login user name/pw/spid/ID/ whatever, and you get this error in the page - before you spend a lot of time looking through all of the email lists - make sure you cycle the app pool and clear relevant caches.

I hope this saves someone some time.

grrr...

Upvotes: 1

gzaxx
gzaxx

Reputation: 17600

You are adding not email but query into your recipients list. I assume you want to retrieve email address from your query:

string strCommandText = "SELECT custEmail From Customer WHERE userID= '" + Session["userID"] + "';";
SqlCommand myCommand = new SqlCommand(strCommandText, myConnection);
var email = myCommand.ExecuteScalar();

//rest of the code
message.To.Add(email);

also you should use parametrized queries.

Upvotes: 4

Related Questions