2008-08-27 1 views
10

내 프로그램에서 오류 보고서를 이메일로 보내고 싶습니다. 사용자 이름/암호/SMTP 서버/등을 하드 코딩하지 않고 어떻게 할 수 있습니까? 코드에? (사용자가 프로그램을 디 컴파일하여이 이메일 계정을 인계받을 수 있습니다.)기존 계정을 사용하여 _without_에서 프로그램 이메일을 보내는 방법은 무엇입니까?

25 번 포트에 telnet으로 연결할 수 있다고 들었지만 자세한 내용은 매우 희미합니다. Google에서 제공하는 대부분의 코드 스 니펫에는 기존 계정이 있다고 가정하며이 경우에는 작동하지 않습니다.

.NET v3.5 (특히 C#)를 사용하고 있지만, 대부분의 언어에서 아이디어가 비슷하다고 생각합니다. 오랫동안 내가 오프라인 애플리케이션을 위해 이것을하고 있으며 PHP 코드 또는 다른 것을 제공하지 않는다는 것을 알고있는 한, 우리는 괜찮을 것이다.

답변

8

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

+0

받는 사람 : 주소가 Gmail 주소가 아닌 경우 어떻게해야합니까? 그 상황을위한 좋은 대안은 무엇입니까? – greg7gkb

1

프로그램에서 직접 이메일을 보내야하는 경우 해당 정보를 어떻게 든 가져와야하기 때문에 공격자가 정보를 얻을 수도 있습니다.

단순한 http 양식이나 웹 서비스를 어딘가에 호스팅하여 응용 프로그램에서 필요한 정보를 게시하고 (인증 필요 없음) 나중에 수동으로 보도록 저장하거나 전자 메일을 보내도록하십시오 그 서버에서?

7

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

0

나는 최선의 계획은 이메일 (또는 다른 적절한 방법으로 로그인)을 보낼 수있는 귀하의 통제하에있는 일부 서비스 (간단한 경우, 웹 양식)에 오류 정보를 제출하는 것이라고 생각합니다. .

이메일을 보내는 것이 최종 사용자에게 유익하다고 생각되는 경우, 다른 옵션은 사용자가 자신의 SMTP 서버 (및 필요한 경우 사용자 이름/암호)를 입력하도록하는 것입니다. - Unix 시스템에서, sendmail을 사용하고 사용자가 올바르게 구성되도록합니다. 필자는이 접근 방식을 사용하여 시스템의 예약 된 작업에 대한 사용자 보고서를 보내는 시스템에서 작업 했었습니다.

-1
MailMessage msg = new MailMessage("[email protected]", "[email protected]"); 
msg.Subject = "Check it out!"; 
msg.Body = "Visit stackoverflow.com!"; 
SmtpClient client = new SmtpClient("some.smtp.server", 25); 
client.Send(msg); 
0

당신은 당신이 당신의 자신의 ISP의 SMTP 서버를 사용할 때, 당신은 당신이 갈 수 있도록 메일 릴레이 스팸을하는 것으로 간주되지 않기 때문에 사용중인 ISP의 SMTP 서버를 알고있다해야 할 일은 어떤 인증없이 통과합니다.

불행하게도, 쉽게 정보를 얻을하는 것이 불가능 또는 내가 생각 당신이 회사에서 Exchange를 사용할 때처럼 익명으로 로그인 할 수없는 것입니다 몇 가지 작은 예외 ... 처음에

이있다 정보를 암호화하고 런타임 중에 암호 해독하는 방법에 대해 설명하지만 네트워크 카드를 스니핑하여 계속 사용할 수 있습니다. 그러나 이미 다른 사람들이 제안한 것처럼 웹 서비스에 결합하여 해독 및 메일 링을 수행하거나 웹 서비스에 정보를 직접 보낼 수도 있습니다.

관련 문제