2016-09-10 6 views
0

私はWebプログラミングを初めて利用しており、ASP.NET Coreを使用してWebサイトを作成しており、ユーザーが名前、電子メール、件名、およびメッセージを入力する標準の「連絡先」ページを作成しようとしています。 ASP.NETコアにはまだSystem.Net.Mailがあるので、私はそれを使用できません。"Contact Me"フォームにMailKitを使用できますか?

MailKitを使って電子メールを送信することはできますが、連絡先ページにその電子メールを使用する方法はわかりません。私は私のSMPTサーバーを使用して電子メールを送信することができ

using (var client = new SmtpClient()) { 
      client.Connect ("smtp.friends.com", 587, false); 

      // Note: since we don't have an OAuth2 token, disable 
      // the XOAUTH2 authentication mechanism. 
      client.AuthenticationMechanisms.Remove ("XOAUTH2"); 

      // Note: only needed if the SMTP server requires authentication 
      client.Authenticate ("joey", "password"); 

      client.Send (message); 
      client.Disconnect (true); 

このコードを使用して知っているが、明らかに私は、サイトを使用して、ユーザーの機能は私に電子メールを送信できるようにしたいです。このためにMailKitを使用する方法はありますか、別の解決策を見つける必要はありますか?ありがとう。

編集: これは私が正常に電子メールを送信するコードですが、それは常に私から私に送信されたと言います。

public IActionResult SendEmail(Contact contact) 
    { 
     var emailMessage = new MimeMessage(); 

     emailMessage.From.Add(new MailboxAddress(contact.Name, contact.Email)); 
     emailMessage.To.Add(new MailboxAddress("myname", "myemail")); 
     emailMessage.Subject = contact.Subject; 
     emailMessage.Body = new TextPart("plain") { Text = contact.Message }; 

     using (var client = new SmtpClient()) 
     { 
      client.Connect("smtp-mail.outlook.com", 587); 
      client.Authenticate("myemail", "myemailpassword"); 
      client.Send(emailMessage); 
      client.Disconnect(true); 
     } 
     return RedirectToAction("Index", "Home"); 
    } 

答えて

1

はい、MailKitをこの目的に使用できます。

あなたが見ている問題は、outlook.comがあなたのメールアドレスをFromヘッダーに置き換えていることです(SMTP経由でログインするとoutlook.comの「機能」です)。

これを回避するには、返信先をユーザーの住所に設定して返信することができます。

または、送信者をユーザーのアドレスに設定し、送信者を自分のアドレスに設定してみてください。

+0

私は送信者を自分のアドレスに設定しようとしましたが、動作していないようです。私はyahoo smtpサーバーを代わりに使ってみることにしましたが、今では「送信元アドレス」が確認されていないというエラーが表示されています。 "from"が見通しでstmpサーバーがyahooであることが重要ですか?私がヤフーの電子メールを "from"セクションにハードコードすると、それは機能します。 – ecain

+1

これは、スパムを最小限に抑えるSMTPサーバーの機能です。別のサーバーを試してみること以外に私が示唆できることはあまりありません。 – jstedfast

関連する問題