IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[INDY] Annuler l'envoi d'un mail


Sujet :

Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut [INDY] Annuler l'envoi d'un mail
    Bonjour, J'aimerai pouvoir annuler l'envoi d'un mail pendant le traitement. Donc dans l'évenement OnWork, j'ai mis un truc du style.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If StopSend then
    begin
      IdSmtp1.Disconnect;
    end;
    Mais j'ai une exception EStreamError "Mémoire insuffisante lors de l'extension du flux mémoire" --> super clair quoi .

    Avez-vous une méthode plus adaptée ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 140
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 140
    Par défaut
    Yep !
    IdSmtp1.Disconnect;
    C'est pas un peu "violent" ?
    Je ne sais pas comment fonctionnent à bas niveau ces composants, mais si l'on admet l'hypothèse que quand tu envoies ça crée un thread interne avec un job à bas niveau pour gérer l'entrée/sortie SMTP, peut-être que le Disconnect libère la mémoire dont ce thread a besoin ?

    Il n'existe pas de méthode Stop (désolé, j'ai pas les Indy) ou apparentée ?
    Mes 2 cts,
    --
    jp

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Salut,
    Il n'existe pas de méthode Stop (désolé, j'ai pas les Indy) ou apparentée ?
    Mes 2 cts,
    Non il n'y a pas ça. Mais j'ai trouvé la méthode EndWork qui force l'évenement OnWorkEnd.

    Merci.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    He bein non, ça ne marche pas, il me l'envoi quand même .

    Help please

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Je trouvé la solution , la bonne cette fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IdSmtp.disconnectSocket;
    Génere une exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La connexion s'est terminée proprement.
    Que demander de plus !

    A+

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    et comme çà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TfrmMain.IdSMTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    begin
     If StopSend then begin
       TIdTCPConnection(ASender).Socket.CheckForDisconnect;
       TIdTCPConnection(ASender).Socket.Close;
     end;
    end;
    [edit]
    Ah bin, t'as trouvé la solution ^^
    [/edit]
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'envois de mail ne m'envois pas de mail ...
    Par PrinceMaster77 dans le forum ASP
    Réponses: 10
    Dernier message: 27/10/2004, 16h28
  2. Envois d'un mail Avec CDont
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/10/2004, 17h34
  3. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18
  4. Envoi d'un mail automatiquement
    Par batmat86 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/06/2004, 09h20
  5. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo