2011-11-02 16 views
5

私はASPの初心者です。作業用のフォームのトラブルシューティングを行っています。 PHPを使用しているため、ASPの専門家はいません。しかし、私はPHPの経験の底にあり、主にHTML/CSSだけで作業しています。現在のフォームの資格情報は次のようになります。gmail SMTPをASP.NETフォームで使用する方法

rotected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
     If Not Page.IsValid Then Exit Sub 

     Dim SendResultsTo As String = "email to" 
     Dim smtpMailServer As String = "email server" 
     Dim smtpUsername As String = "email username" 
     Dim smtpPassword As String = "password" 
     Dim MailSubject As String = "Form Results" 

このフォームをGmailアドレスに送信するにはどうすればよいですか?私はポート(587)をどこかに入れる必要があることを知っていますが、このフォームが私が見た他のフォームの構文と一致しないので、どこを見つけることができません。どんな助けでも大歓迎です!

答えて

12
protected void SendMail() 
     { 
      MailMessage msg = new MailMessage(); 
      System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 
      try 
      { 
       msg.Subject = "Add Subject"; 
       msg.Body = "Add Email Body Part"; 
       msg.From = new MailAddress("Valid Email Address"); 
       msg.To.Add("Valid Email Address"); 
       msg.IsBodyHtml = true; 
       client.Host = "smtp.gmail.com"; 
       System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential("Valid Email Address", "Password"); 
       client.Port = int.Parse("587"); 
       client.EnableSsl = true; 
       client.UseDefaultCredentials = false; 
       client.Credentials = basicauthenticationinfo; 
       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.Send(msg); 
      } 
      catch (Exception ex) 
      { 
       log.Error(ex.Message); 
      } 
     } 
+2

ありがとう!それが分かった! –

+0

Gmail/Googleはメールの送信をブロックします。送信者のGmailアカウントから設定を変更して、「安全性の低いアプリ」がアクセスできるようにすることができます。 – Shiljo

1

System.Net.Mail.SmtpClientオブジェクトを作成し、使用しているSMTPサーバー情報を設定します。

そして、メッセージデータをSystem.Smtl.MailMessageを作成し、それを送信します。

using (System.Net.Mail.SmtpClient mail = new System.Net.Mail.SmtpClient()) { 
    using (System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("from*where.com", "[email protected]") { 
     IsBodyHtml = true, 
     Subject = "Subject text", 
     Body = messageBody, 
    }) { 
     mail.Send(message); 
} // using 

あなたは、コンストラクタであなたのSmtpClientを設定することができ、我々はweb.comfigを使用するので、私はそのコードを持っていません。

+0

でこの作業を取得するために要した手順です。私はこのプロジェクトで作業すべきではありませんが、残念ながら私はそれを行うために利用できる唯一の人です。 –

+0

上記の回答のweb.configはSmtpClientオブジェクトを設定しているので、自分のコードを変更せずにメッセージを送信できます。 – drdwilcox

+0

ここに私の完全な構文http://pastebin.com/85Ad9swq 私はお詫びしますが、私はどこから始めるべきか分かりません。私はASP.NETを学ぶ実行可能な理由がありません...この1つのインスタンスとは別に-_- –

16

あなたのweb.configファイル

<system.net> 
    <mailSettings> 
     <smtp from="[email protected] "> 
     <network host="smtp.gmail.com" defaultCredentials="false" 
     port="587" userName ="[email protected]" password="yourpassword" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
+0

既存のコードから全体を削除しますか?文字列=「フォームの結果として '文字列として暗いSendResultsTo =文字列としてとして 薄暗いsmtpMailServer =「電子メールサーバー」 薄暗いsmtpUsername「への電子メールは、」=「メールのユーザー名」文字列として 薄暗いsmtpPassword =「パスワード」 薄暗いMailSubject " –

+0

あなたはコード内でユーザー名のパスワードとネットワークを再度指定する必要はありません。この有用なヒントのメッセージ –

+0

を送信するSmtpClientオブジェクトを作成してください。よくやった。 –

-1

.NET内から電子メールを送信する方法についてno shortage of tutorialsがありますでこれを追加することができます。

System.Net.Mail.SmtpClientオブジェクトはSMTPサーバーと対話し、メッセージデータを保持するオブジェクトはSystem.Net.Mail.MailMessage、設定ファイルではクライアントにメッセージを送信する方法と場所を指示します。

0

これを試してください。

Dim client As New Net.Mail.SmtpClient 
client.UseDefaultCredentials = False 
client.Credentials = New System.Net.NetworkCredential("[email protected]", "password") 
client.Host = "smtp.gmail.com" 
client.Port = 587 
client.EnableSsl = True 
client.Send("[email protected]","[email protected]","subject","body") 
+0

実行時エラーが発生します。 ないPage.IsValidは、その後、新しいNet.Mail.SmtpClientとして client.UseDefaultCredentialsをサブ 薄暗いクライアントを終了している場合= Falseの client.Credentials =ネット System.Net.NetworkCredential( "[email protected]"、「pajax6767 ") client.Host =" smtp.gmail.com " client.Port = 587 client.EnableSsl = True client.Send(" [email protected] "、" [email protected] "、" subject " 、 "body") Try Dim txtQ As TextBox = Me.FormContent.FindControl( "TextBoxQ") ' –

+1

これを削除してください。あなたのパスワードが明らかになりました! – naveen

+1

その偽のパスワード –

0

あなたは2段階認証プロセスを使用している場合は、Gmailにログオンするときに使用するパスワード、アプリケーション固有のパスワードを生成し、それを使用しないことを忘れないでください。

は(申し訳ありませんが、私はコメントとしてこれを追加することはできません。十分でない担当者がこれを掲示する時に。)

0

Google Nowのブロックサインインを(でも、SSL経由)アプリからメールを送信します。次の2つのオプションがあります。

  1. 使用しているアカウントで安全性の低いアプリケーションを有効にします。 OR
  2. オプション2のためにグーグル(推奨)

からアプリパスワードを生成し、あなたはアプリのpaswordを生成することができます前に、2要素認証を有効にする必要があります。 は、ここで私はハハハ、私はどのようにそれをやって行くには考えている私のASP.NETのWebアプリ

How to configure an ASP.NET web app with Gmail SMTP

関連する問題