2016-11-29 10 views
-5
string email = "select seller.emailid from seller inner join cars on seller.sid=cars.sid where cars.carid='" + lbllid + "' "; 
      GridView1.EditIndex = -1; 
      MailMessage MyMailMessage = new MailMessage("****@gmail.com", email, "Ruby Cabs Email Confirmation", Environment.NewLine + " This is an email automated sevice." + Environment.NewLine + "Your car has been approved. Thank you for taking out time to fill the data." + Environment.NewLine + "Regards," + Environment.NewLine + "Ruby Cabs"); 
      MyMailMessage.IsBodyHtml = false; 
      NetworkCredential mailAuthentication = new NetworkCredential("****@gmail.com", "****"); 
      SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587); 
      mailClient.EnableSsl = true; 
      mailClient.UseDefaultCredentials = false; 
      mailClient.Credentials = mailAuthentication; 

SQL Serverでクエリを確認しても問題ありません。誰でも問題の内容を伝えることができます「指定された文字列は、電子メールアドレスに必要な形式ではありません。 errror

+11

明らかにSQLクエリは有効な電子メールアドレスではありませんか? – ThePerplexedOne

+0

有効です。私はいつも使っています。 – Samsam

+5

あなたは 'MailMessage'クラスがSQLクエリを認識して実行することを期待していますか?それは働かない*です。 – Amy

答えて

3

new MailMessage(...)を呼び出すときに電子メールフィールドにSQLクエリを入力しています。

SQLサーバーに対してクエリを実行し、結果セットを取得し、前記結果セットから電子メールアドレスを抽出し、THATを電子メールアドレスとして使用する必要があります。

デバッガーはあなたの友人です。

+0

また、大量のSQLインジェクションの脆弱性から数行離れているので、そのクエリをパラメタイズすることもできます。 –

+0

@AntP **私はそれをストアドプロシージャに入れて、メッセージテキストをデータベースに入れます。少なくともすべてを連結するのではなく、 'string.Format()'を使用してください。私はそれがコードビハインドの中に直接存在するという偶然さえも与えているだろう。 –

+0

私は、sprocを使用したり、メッセージを動的にすることが適切かどうかは、多くの他の状況要因に依存していると言います。しかし、SQLインジェクションを防御する必要はありません。 –

関連する問題