기존 계정을 사용하여 프로그램에서 이메일을 보내는 방법 _without_?

StackOverflow https://stackoverflow.com/questions/29988

  •  09-06-2019
  •  | 
  •  

문제

내 프로그램이 오류 보고서를 이메일로 보내 주시기 바랍니다. 사용자 이름/비밀번호/SMTP 서버 등을 하드 코딩하지 않고이 작업을 수행하려면 어떻게해야합니까? 코드에? (그렇게하면 사용자는 프로그램을 소집 하고이 이메일 계정을 인수 할 수 있습니다.)

나는 당신이 포트 25로 텔넷을 사용하여 일을 할 수 있다고 들었지만 세부 사항에 대해 매우 흐릿합니다. Google의 대부분의 코드 스 니펫은 기존 계정이 있다고 가정합니다.이 계정은이 상황에서는 작동하지 않습니다.

.NET v3.5 (C#)를 사용하고 있지만 대부분의 언어에서 아이디어가 충분히 비슷하다고 생각합니다. 내가 오프라인 앱을 위해이 작업을 수행하고 PHP 코드 등을 제공하지 않는 한, 우리는 괜찮을 것입니다.

도움이 되었습니까?

해결책

계정이 gmail.com에있는 한 설정하십시오. gmail-smtp-in.l.google.com 프로그램에서 나가는 SMTP 서버로. 해당 서버를 사용할 때 Gmail-Accounts에 이메일을 보내려면 암호를 제공 할 필요가 없습니다.

다른 팁

연결할 웹 서비스를 만들 것입니다. 이 웹 서비스는 프로그램이 제공하는 데이터를 기반으로 이메일을 보내야합니다. 모든 민감한 액세스 데이터는 웹 서비스 측에 보관되어 있으므로 더 안전합니다.

프로그램이 직접 이메일을 보내야한다면, 해당 정보를 어떻게 든 가져와야하므로 결정된 공격자는 해당 정보를 얻을 수 있습니다.

어딘가에 간단한 HTTP 양식 또는 웹 서비스를 호스팅하여 응용 프로그램에서 필요한 정보를 게시 할 수 있도록 (인증 필요 없음) 나중에 살펴 보거나 해당 서버에서 이메일을 보내도록 저장할 수 있습니까?

최선의 계획은 통제하에 실행되는 일부 서비스 (간단한 경우 웹 양식)에 오류 정보를 제출하여 이메일을 보내거나 다른 적절한 방법으로 로그인 할 수있는 것입니다.

이메일을 최종 사용자에게 혜택을받는 것으로 가정하면 다른 옵션은 사용자가 자신의 SMTP 서버 (및 필요한 경우 사용자 이름 / 비밀번호)를 입력하도록하는 것입니다. 사용자가 올바르게 구성하도록합니다. 이 접근 방식을 사용하여 시스템의 예정된 작업에 대한 사용자 보고서를 보내는 시스템에서 작업했으며 그 결과 잘 작동했습니다.

당신이해야 할 일은 자신의 ISP의 SMTP 서버를 사용할 때 메일 릴레이 스팸을 수행하는 것으로 간주되지 않으므로 인증없이 진행할 수 있기 때문에 사용중인 ISP의 SMTP 서버를 아는 것입니다.

불행히도, 회사에서 Exchange를 사용할 때 익명으로 로그인 할 수없는 작은 예외가있는 것은 항상 가능하지는 않습니다.

처음에는 정보를 암호화하고 런타임 중에 해독하는 것에 대해 생각했지만 네트워크 카드를 스니핑하여 사용할 수 있습니다. 그러나 해독과 메일 링을 수행하는 웹 서비스 (또는 다른 사람이 이미 제안한 것처럼 웹 서비스에 직접 정보를 보내는)와 함께 웹 서비스를 결합 할 수 있습니다.

MailMessage msg = new MailMessage("someone@foo.com", "someoneelse@bar.com");
msg.Subject = "Check it out!";
msg.Body = "Visit stackoverflow.com!";
SmtpClient client = new SmtpClient("some.smtp.server", 25);
client.Send(msg);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top