2013-06-10 5 views
1

저는 제 경험으로는 델파이에서 일한 적이 없지만 제가 만들고 싶은 작은 도구가 있습니다. 델파이에서 만들어야한다고 생각합니다. 수 시간 동안 검색하고 테스트 한 결과,이 가이드 (http://delphi.about.com/od/indy/a/email-send-indy.htm)만이 작동하지 않는다는 사실을 발견 한 경우 이메일 보내기 버튼을 누르면 큰 오류가 발생합니다.전자 메일 보내기 Delphi

내 게임과 함께 배포 될 도구를 만들고자하는데 문제가 있거나 피드백이있을 경우 사용자가 내 Gmail로 이메일을 보내도록 허용 할 것입니다. 그는 이메일을 입력하고, 스크린 샷을 첨부하고, 의견 상자에 내용을 기입하고, 다른 것을 가질 필요가 없습니다. 내가 붙어서 어떤 도움을 주셔서 감사합니다, 고마워요.

+0

게임에서 이메일을 보내려면 고유 한 SMTP 서버를 사용하고 있습니까? –

+0

아니요, 가능하면 Gmail 계정을 통해 보내고 싶습니다. –

+0

GMail이 SMTP 서버에 대한 보안되지 않은 액세스를 허용하는지 잘 모르겠습니다. –

답변

8

다음은 이메일을 보내는 간단한 루틴입니다.

procedure SendImage(const Comment, AImage: String); 
var 
    SMTP: TIdSMTP; 
    Msg: TIdMessage; 
begin 
    if not FileExists(AImage) then 
    Exit; 
    Msg := TIdMessage.Create(nil); 
    try 
    Msg.From.Address := '[email protected]'; 
    Msg.Recipients.EMailAddresses := '[email protected]'; 
    Msg.Body.Text := Comment; 
    TIdAttachmentFile.Create(Msg.MessageParts, AImage); 
    Msg.Subject := AImage; 
    SMTP := TIdSMTP.Create(nil); 
    try 
     SMTP.Host := 'smtp.gmail.com'; 
     SMTP.Port := 25; 
     SMTP.AuthType := satDefault; 
     SMTP.Username := '[email protected]'; 
     SMTP.Password := '@#$%'; 
     SMTP.Connect; 
     SMTP.Send(Msg); 
    finally 
     SMTP.Free; 
    end; 
    finally 
    Msg.Free; 
    end; 
end; 

추신 : 당신이 당신의 자신의 이메일 주소로 [email protected]를 교체해야합니다, 그리고 사용자의 난 당신이 당신의 요구에 맞게 수정할 수 있습니다 같아요. 오류 보고서 본문에 이메일 주소를 포함 할 수 있습니다.

+0

AFAIK Google은 보안 연결이 필요합니다. –

+0

@ TheFox 나는 그것을 두려워했다. 그런 다음 Yordan은 다른 SMTP 서버를 찾거나 SSL을 사용해야합니다. gmx.com –

+0

죄송 합니다만,이 코드는 어디에 두어야합니까? –

4

IMO, 이메일은 100 % 시간 안에 작동하지 않습니다. 운이 좋은 80 %를 얻을 것이다. SMTP를 사용하는 경우 방화벽과 ISP는이를 허용해야합니다. 기존 전자 메일 클라이언트를 사용하는 경우 올바른 구성을 사용합니다. 일반적인 시나리오는 Gmail 또는 Yahoo를 사용하고 "이미 시스템에있는 imap 이메일"을 통해 무언가를 보내려고 시도하는 것이며 사용자는 자신이 알지도 못하는 Outlook Express 또는 Windows Mail의 이전 사본에 직면하게됩니다 ,하지만 기본 전자 메일 처리기로 windows에 "등록"되어 있습니다. 이것은 추해진다. 웹 페이지의 앱에 HTTP를 통해 보내는 것이 좋습니다. 정보와 이미지를 MySQL 데이터베이스에 기록하는 PHP 스크립트. 사실, Mantis 나 FogBugz와 같은 버그 추적 데이터베이스를 사용하는 것이 좋습니다. 나는 그것들을 확인해보고 그들이 제공하는 것을 좋아한다면 HTTP 게시물 (또는 전자 메일 등)을 통해 보고서를 제출하는 것이 매우 간단합니다.

+0

[Bugzscout] (http://fogbugz.stackexchange.com/questions/315/bugzscout-to-capture-errors)를보십시오. –