Avatar billede LC_DK Nybegynder
11. januar 2013 - 10:49 Der er 20 kommentarer

mail og delphi

Jeg er løbet ind i et problem,jeg har brug for et komplet delphi eksempel m/sourcekode der hviser hvordan man afsender og modtager email fra gmail, hvis ikke en entelig emailklient f.eks. outlook ikke er installeret.

jeg programere i Delphi 2007

jeg har søgt og fundet mange eksempler på internette men de har ikke virket. Jeg håber en venlig person på forummet vil hvælpe mig. På forhånd tak.

Med venlig hilsen
Lars
Avatar billede spil2vind Nybegynder
11. januar 2013 - 10:57 #1
Hej, jeg har også rodet en del rundt efter løsninger der kunne bruges, men endte op med at købe easendmail source koden og det virker perfekt
Avatar billede hugopedersen Nybegynder
11. januar 2013 - 12:31 #2
Så vidt jeg husker så findes der en rimelig komplet Indy demo mailklient der ude.
http://www.indyproject.org/sockets/demos/index.en.aspx
Måske er det en gammel Indy9 ting, men prøv at se efter.

Og for at få den til at virke med GMail er vel bare et spørgsmål om at din GMail konto skal være sat op til SMTP
Og så selvfølgelig at man skal angive de ikke standard porte som GMail bruger (er det ikke 465 og 995? - kan ikke huske det)
Avatar billede martinlind Nybegynder
11. januar 2013 - 12:52 #3
Indy eks. virker fint kører pop3/smtp, jeg har brugt det uden problemer :-)
11. januar 2013 - 13:41 #4
Hej

GMAIL og Indy er for mig ganske uforenelige sager. (For den sags skyld også Yahoo.mail).

Fandt Extended Webbrowser

http://www.codeproject.com/Articles/13598/Extended-NET-2-0-WebBrowser-Control

og der er både G- og Yahoo-mail inkluderet. 

MEN for at få det til at isolere den aktive kode må du i gang med et større detektiv-arbejde og skære en masse (overflødig ?) kode fra. 

Bare til din orientering.

Kristian
11. januar 2013 - 13:43 #5
HEJ IGEN

UUUUUUUUUUUUUUPS !

Sidste afsnit burde være:

MEN for at få den aktive kode må du isolere den. Og det betyder at du må i gang med et større detektiv-arbejde og skære en masse (overflødig ?) kode fra. 

SORRY ..

Kristian
Avatar billede martinlind Nybegynder
11. januar 2013 - 14:45 #6
??? det er delphi vi snakker .... ikke .net C#
12. januar 2013 - 01:31 #7
HEJ

Må korrigere mig selv:

Linket i #4 peger godt nok på en web-browswer, men ikke den jeg havde i tankerne. Her er det rette link.

http://bsalsa.com/downloads.html


Og (Martin Lind #6)  : Jeg går ud fra da mit tidl. link pegede forkert, at det var det du mente. Fejlen er forhåbentlig rettet op her..

KR
Avatar billede arne_v Ekspert
12. januar 2013 - 01:53 #8
GMail understoetter da baade POP3 og SMTP.
Avatar billede hugopedersen Nybegynder
12. januar 2013 - 11:09 #9
Problemet med GMail og Indy er at GMail bruger en eller anden underlig SSL ting som Indy åbenbart ikke har det alt for godt med så vidt jeg har kunne finde frem til.

Al den her snak har betydet at jeg har måtte revudere dokumentationen til et stykke software så der står at det ikke kan benyttes med GMail via den indbyggede mailafsendelse via SMTP :-)
Avatar billede hugopedersen Nybegynder
12. januar 2013 - 11:19 #10
12. januar 2013 - 11:21 #11
HEJ,


Omkring GMAIL og Yahoo -ditto):
HP (indlæg #9) kan ikke udtrykke det tydeligere.

Men som sagt Embedded Webbrowser (mit indlæg #7) kan,  omend med store problemer...

KR
Avatar billede RogerWilco Seniormester
12. januar 2013 - 13:08 #12
Avatar billede kroning Nybegynder
13. januar 2013 - 20:19 #13
Jeg bruger Indy 10 (10.5.8.0) til at sende mail via en gmail konto og det har virket fint i et års tid nu. Jeg har dog ikke prøvet at modtage mail fra en gmail konto men når jeg kan sende så er det nok heller ikke noget problem at modtage.
Sig til hvis du endnu ikke har fundet en løsning så banker jeg et lille eks. sammen.
Avatar billede hugopedersen Nybegynder
16. januar 2013 - 07:03 #14
@kroning    hvis du har et eksempel på hvordan du får Indy til at spille med SSL mod GMail, så vil jeg meget gerne se det.
Avatar billede kroning Nybegynder
16. januar 2013 - 18:32 #15
Jeg bruger Indy 10 (10.5.8.0) og Delphi 7

Husk de 2 OpenSSL dll filer, de er med i zip filen jeg henviser til.

Jeg har samlet alle filer her: www.kroning.dk/SSLmailtest.zip

-------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdException, IdExplicitTLSClientServerBase, IdSMTP, IdMessage, IdSSLOpenSSL;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
    IdSMTP: TIdSMTP;
    IdMessage: TIdMessage;
    IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
const
    BenytSSL : boolean = true;
begin
  IdSMTP:=TIdSMTP.Create(nil);
  IdMessage:=TIdMessage.Create;
    IdSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create;

  if BenytSSL then
  begin
        IdSMTP.Username:='DIN GMAIL KONTONAVN HER'; //RET HER
        IdSMTP.Password:='DIN GMAIL PASSWORD HER'; //RET HER
  end;

  IdMessage.ContentType:='text/html; charset=utf-8';
    IdMessage.Encoding:=meDefault;

  IdMessage.Recipients.Add.Address:='MODTAGER MAIL ADRESSE'; //RET HER
  IdMessage.Body.Text:='Og teksten i mailen her';
  IdMessage.From.Address:='AFSENDER MAIL ADRESSE'; //RET HER
 
  IdMessage.From.Name:='Anders And';
  IdMessage.From.Text:=IdMessage.From.Name+' <'+IdMessage.From.Address+'>';
  IdMessage.Sender.Address:=IdMessage.From.Address;
    IdMessage.Sender.Name:=IdMessage.From.Name;
  IdMessage.Sender.Text:=IdMessage.From.Text;
  IdMessage.Subject:='En SSL mail test';
  IdSMTP.ConnectTimeout:=5000;

  if BenytSSL then
  begin
      IdSMTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL;
    IdSMTP.UseTLS:=utUseRequireTLS;
  end;
 
  IdSMTP.Host:='smtp.gmail.com';
  IdSMTP.Port:=587;

    try
      IdSMTP.Connect;
        IdSMTP.Send(IdMessage);
        IdSMTP.Disconnect;
    ShowMessage('Mail sendt');
    except
    on E:Exception do
    begin
        if not (E is EIdConnClosedGracefully) then
          ShowMessage(E.Message);
    end;
  end;

  IdMessage.Free;
  IdSMTP.Free;
  IdSSLIOHandlerSocketOpenSSL.Free;
end;

end.
Avatar billede mbsnet Nybegynder
17. januar 2013 - 04:54 #16
Avatar billede bolorolo Nybegynder
12. februar 2013 - 17:37 #17
Hej Kroning, det virker helt kanont.

Skal de 2 dll filer ligger sammen med exe filen hvis man bruger den på en anden computer, eller kan man installere (registrere de 2 dll'er) ?
Avatar billede kroning Nybegynder
13. februar 2013 - 09:38 #18
Jeg har altid lagt dll filerne sammen med exe filen, men der er sikkert andre måder at gøre det på.
Avatar billede LC_DK Nybegynder
31. august 2013 - 19:05 #19
Hej

Jeg får en dll fejl, kan ikke loade dll...

Mvh
LC
Avatar billede kroning Nybegynder
31. august 2013 - 19:28 #20
Og de 2 dll filer er i samme mappe som din exe ?
Og hvilken Indy og Delphi version bruger du?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester