Asp.net-wp-add-email

提供:Dev Guides
移動先:案内検索

ASP.NET WP-メールを追加

この章では、Webサイトに電子メールを追加する方法と、Webページから電子メールを送信する方法について説明します。 Webサイトから電子メールを送信する必要がある理由はさまざまです。

  • 確認メッセージをユーザーに送信できます。
  • 自分に通知を送信することもできます。 たとえば、新しいユーザーがWebサイトに登録したとき。
  • WebMailヘルパー*を使用してメールを送信するのは非常に簡単です。 このWebMailヘルパーを使用するには、SMTP(SMTPはSimple Mail Transfer Protocolの略)サーバーにアクセスする必要があります。
  • SMTPサーバーは、受信者のサーバーにのみメッセージを転送するメールサーバーです。
  • Webサイトにホスティングプロバイダーを使用している場合、メールプロバイダーはあなたのSMTPサーバー名を教えてくれます。
  • 企業ネットワーク内で作業している場合、管理者またはIT部門は通常、使用できるSMTPサーバーに関する情報を提供できます。
  • 自宅で作業している場合は、SMTPサーバーの名前を教えてくれる通常のメールプロバイダーを使用してテストすることもできます。

SMTPサーバーを使用するには、次のものが必要です。

  • SMTPサーバーの名前。
  • ポート番号はほとんど25です。 ただし、ISPがポート587の使用を要求する場合があります。
  • ユーザー名、パスワードなどの資格情報。

メールを送信する簡単な例を見てみましょう。 まず、新しいCSHTMLファイルを作成する必要があります。

ファイルの種類

[名前]フィールドに EmailRequest.cshtml と入力し、[OK]をクリックします。

ここで、EmailRequest.cshtmlファイルの次のコードを置き換えます。

<!DOCTYPE html>
<html>

   <head>
      <title>Request for Assistance</title>
   </head>

   <body>
      <h2>Submit Email Request for Assistance</h2>
      <form method = "post" action = "ProcessRequest.cshtml">
         <div>
            Your name:
            <input type = "text" name = "customerName"/>
         </div>

         <div>
            Your email address:
            <input type = "text" name = "customerEmail"/>
         </div>

         <div>
            Details about your problem: <br/>
            <textarea name = "customerRequest" cols = "45" rows = "4"></textarea>
         </div>

         <div>
            <input type = "submit" value = "Submit"/>
         </div>
      </form>

   </body>
</html>

上記のコードでわかるように、フォームのアクション属性が ProcessRequest.cshtml に設定されていることは、フォームがそのページに送信されることを意味します。 別のCSHTMLファイルProcessRequest.cshtmlを作成して、次のコードを置き換えましょう。

@{
   var customerName = Request["customerName"];
   var customerEmail = Request["customerEmail"];
   var customerRequest = Request["customerRequest"];
   var errorMessage = "";
   var debuggingFlag = false;

   try {
     //Initialize WebMail helper
      WebMail.SmtpServer = "smtp.mail.yahoo.com";
      WebMail.SmtpPort = 465;
      WebMail.UserName = "waqasm78@yahoo.com";
      WebMail.Password = "**********";
      WebMail.From = "waqasm78@yahoo.com";

     //Send email
      WebMail.Send(to: customerEmail,
         subject: "Help request from - " + customerName,
         body: customerRequest
      );
   }catch (Exception ex ) {
      errorMessage = ex.Message;
   }
}

<!DOCTYPE html>
<html>

   <head>
      <title>Request for Assistance</title>
   </head>

   <body>
      <p>Sorry to hear that you are having trouble, <b>@customerName</b>.</p>

      @if(errorMessage == ""){
         <p>An email message has been sent to our customer service department regarding
            the following problem:</p>
         <p><b>@customerRequest</b></p>
      } else{
         <p><b>The email was <em>not</em> sent.</b></p>
         <p>Please check that the code in the ProcessRequest page has
            correct settings for the SMTP server name, a user name,
            a password, and a "from" address.</p>

         if(debuggingFlag){
            <p>The following error was reported:</p>
            <p><em>@errorMessage</em></p>
         }
      }

   </body>
</html>

Yahooメールプロバイダーを使用している場合、上記のプログラムの次のコードを置き換えて実行する必要があります。

//Initialize WebMail helper
   WebMail.SmtpServer = "smtp.mail.yahoo.com";
   WebMail.SmtpPort = 465;
   WebMail.UserName = "waqasm78@yahoo.com";
   WebMail.Password = "**********";
   WebMail.From = "waqasm78@yahoo.com";
*WebMail.Password* プロパティに独自のパスワードを入力する必要があります。

次に、アプリケーションを実行して、次のURLを指定します- http://localhost:59795/EmailRequest 。次のWebページが表示されます。

メール送信

次のスクリーンショットに示すように、言及されたすべてのフィールドに情報を入力します。

メールリクエスト

[送信]をクリックすると、メールが正常に送信されたときに次のメッセージが表示されます。

支援のリクエスト