2014-05-21 2 views
0

내 팀과 나는 매우 구체적이고 좌절스러운 문제가 있습니다. MVC4 웹 애플리케이션은 회사 내에서 많은 사람들이 활용했습니다 (외부 노출 없음). 일부 프로세스는 응용 프로그램에 대한 링크가있는 다른 직원에게 전자 메일을 생성합니다.대상이있는 본문에 앵커 태그가있는 C#으로 Outlook 전자 메일 만들기

는 예를 들어, 한 직원이보고에 참석하고 싶은 몇 가지 활동이있을 수 있습니다. 다른 직원에게 이메일을 보내서 참석하고 싶다고 말할 수 있습니다. 이러한 이메일에

, 우리는 우리의 응용 프로그램에 다시 연결하고 오른쪽 페이지에 직접 도움이되는 몇 가지 쿼리 문자열 물건에 앵커 태그를 넣어.

모두 훌륭하게 작동합니다. 이제 문제는 응용 프로그램이있는 기존 윈도우에 전자 메일의 링크를로드하려는 것입니다. 일반적으로 이것은 앵커 태그에서 대상 속성을 설정하는 것으로 끝나 겠지만 작동하지 않는다는 것은 새로운 탭에서 열리는 것입니다.

Please <a target="appMain" href='http://domain/app/controller.aspx/view? 
keyname=querystringparam1&params={"prop1":val,"prop2":va;}'> 
click here</a> to approve and go to app 

이이 메일을 보내 우리의 SMTP 기능입니다 :

이메일에서 앵커 태그 소스가 (이 회사의 관련 정보를 숨 깁니다 그래서 내가 텍스트를 변경 한) 모습입니다

public void SendMail(EmailContent emailContent, string mailConfigurationPath) 
    { 
     var toRecipients = string.Join(",", emailContent.ToList); 

     var mailMessage = new MailMessage(emailContent.From, toRecipients) 
     { 
      IsBodyHtml = emailContent.IsBodyHtml, 
      Body = emailContent.Body, 
      Subject = emailContent.Subject 
     }; 

     var smtpClient = new SmtpClient 
     { 
      DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, 
      PickupDirectoryLocation = mailConfigurationPath 
     }; 

     smtpClient.Send(mailMessage); 
    } 

내가 달성하고자하는 것은 가능한 것입니까? 그것은 꽤 똑바로 앞으로 보인다, 아마 나는 그것에 대해 잘못된 길을 가고있다. 어떤 도움이나 심지어 "미친"아이디어를 좋아할 것입니다. 이 전자 메일 프로그램 자체의 취약점을 만들기 때문에

+0

나는 그것이 가능하지 않다고 생각합니다. 'window.open'이 이름 붙여진 윈도우를 만드는 방문 페이지를 만들 수는 있지만 사용자가 유기적으로 로그인 할 때 반드시 사용해야합니다. – Malk

답변

0

이것은 http://thenextweb.com/insider/2013/01/07/yahoo-mail-users-hit-by-widespread-hacking-xss-exploit-seemingly-to-blame/

는 또한, 이메일 프로그램에 대한 모든 일반 사용자 인터페이스 가이드 라인에 위배 ... 수 없습니다. 사용자는 이메일이 앱으로 변모 할 것으로 기대하지 않습니다. 그들은 전자 메일의 링크를 클릭하는 것에 매우 익숙하므로 그 작업이 이상한 일을하는 것을 원하지 않을 것입니다.

+0

이메일 앵커 태그의 'target'속성을 사용할 수 없습니까? – JasonWilczak

+0

그건 아니야. 대부분의 이메일 프로그램은 외부 리소스에 대한 액세스를 허용하지 않으며 추가 콘텐츠를 검색하기 위해 웹 서버에 요청할 수 없습니다. iframe과 javascript를 사용하면 문제를 해결할 수 있지만 결국에는 보안 벽에 부딪 힐 수 있습니다. – Jasmine

관련 문제