2016-09-10 1 views
0

저는 웹 프로그래밍에 익숙하지 않고 ASP.NET 코어를 사용하여 웹 사이트를 만들고 있으며 사용자가 이름, 전자 메일, 제목 및 메시지를 입력하는 표준 "연락처"페이지를 만들려고합니다. ASP.NET 코어는 아직 System.Net.Mail이므로 아직 사용할 수 없습니다."저에게 연락하기"양식에 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"이 outlook이고 stmp 서버가 yahoo 인 것이 중요합니까? "보낸 사람"섹션에 야후 이메일을 하드 코딩하면 작동합니다. – ecain

+1

스팸을 최소화하는 SMTP 서버의 기능입니다. 다른 서버를 시도하는 것 외에 다른 방법을 제안 할 수는 없습니다. – jstedfast

관련 문제