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

VC++ .NET Discussion :

[debutant]Utilisation de la classe SmtpClient


Sujet :

VC++ .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut [debutant]Utilisation de la classe SmtpClient
    Bonjour a tous,
    Je debute sous VC++ express edition et j'ai trouvé dans l'aide la classe SmtpClient . Je voudrais dérivée cette classe pour utiliser ses composants. Comment faire pour préciser au compilateur qu'il doit inclure le fichier qui contient cette classe : sous borland c'était include "<SmtpClient.h>" par exemple. La j'ai chercher et ya pas de .h qui correspond a la classe dans les fichiers de VC++ . COmment faut il faire pour inclure une classe de l'aide dans un fichier source que l'on créer soit même ??

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est normal, c'est une classe .Net
    voir dans la faq : http://dotnet.developpez.com/faq/cpp...al#refassembly

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok merci pour le lien vers la FAQ. Si j'ai bien compris je dois utiliser un #using. Par contre quel type de fichier c'est ?? Un .dll .h ?C'est une classe que j'ai trouvé dans l'aide de VC++.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est un assembly, et comme dit dans la faq l'assembly se décrit toute seule, il n'y a nul besoin d'inclure de .h pour l'utiliser.
    Il faut simplement referencer cette assembly (qui porte l'extension .dll), de l'une ou l'autre facon décrit dans la faq

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok il fait partie de l'assembly System donc pas besoin de faire le using. Par contre quand je dérive la classe de cette facon dans mon .h :

    "class MonClientSmtp : public SmtpClient("smtp.monServeurDeMail")"

    Il me marque cette erreur à la compilation :

    "error C2504: 'SmtpClient' : base class undefined"

    Y'a t'il autre chose a faire pour utiliser la classe SmtpClient du framework .NET ??

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Correction : j'ai utilisé le using namespace System::Net::Mail pour corriger l'erreur que je décri dans mon précédent post. Du coup il trouve la classe mais maintenant j'ai cette erreur la :

    "error C3625: 'MonClientSmtp': an unmanaged type cannot derive from a managed type 'System::Net::Mail::SmtpClient'"

    D'après les tuto que j'ai pu lire sur VC++ je dirais que c'est une histoire de classe managée ?!
    Je dois donc rendre ma classe managée ?
    Comment faire ?
    Est ce que cela va me restreindre dans la suite de ma programmation ??

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    en admettant que tu veuilles faire une classe qui dérive de smtpclient,
    il faut déjà définir une classe managée (mot clé ref), et ensuite il faut soit spécifier spécifiquement la classe System::Net::Mail::SmtpClient, soit inclure le namespace System::Net::Mail http://dotnet.developpez.com/faq/cpp...taxe#namespace

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Je récapitule :
    _ je sais comment faire pour utiliser la classe SmtpClient
    _ j'arrive à envoyer des mail via un serveur Smtp

    Problème restant :
    Je veux envoyer une pièce jointe dans mon mail. Avec la méthode send(MailMessage) cela pourrait ête faisable mais je n'arrive pas à créer un objet Attachment !!

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu as un exemple en c# ici, il suffit de traduire http://msdn2.microsoft.com/fr-fr/lib...nt(VS.80).aspx

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    nico-pyright(c) : tu as un exemple en c# ici, il suffit de traduire

    Ok j'ai récupéré ce que je voulais, traduit en C++ mais la je me fais incendier par le compilateur ; voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MailMessage mail = gcnew MailMessage(adresseExpediteur, adresseDestinataire, sujet, message);
     
    	Attachment pieceJointe = gcnew Attachment(nomPieceJointe);
     
    	mail.Attachments->Add(pieceJointe);
     
    	SmtpClient::Send(mail);
    Et voici les erreurs :
    .\ClientSmtp.cpp(42) : error C3699: '*' : cannot use this indirection on type 'System::Net::Mail::MailMessage'
    compiler replacing '*' with '^' to continue parsing
    .\ClientSmtp.cpp(44) : error C3699: '*' : cannot use this indirection on type 'System::Net::Mail::Attachment'
    compiler replacing '*' with '^' to continue parsing
    .\ClientSmtp.cpp(46) : error C2228: left of '.Attachments' must have class/struct/union
    type is 'System::Net::Mail::MailMessage ^'
    did you intend to use '->' instead?
    .\ClientSmtp.cpp(46) : error C2227: left of '->Add' must point to class/struct/union/generic type
    Donc la je sais plus que faire !!

    penser au balise svp / nico-pyright(c)

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    de ce que je vois, tu as oublié les ^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MailMessage ^mail = gcnew MailMessage(adresseExpediteur, adresseDestinataire, sujet, message);
    Attachment ^pieceJointe = gcnew Attachment(nomPieceJointe);

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Correct merci beaucoup à toi !!!!

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/01/2008, 15h29
  2. debutant : classe utilisant une autre classe
    Par zoubla dans le forum Débuter
    Réponses: 6
    Dernier message: 20/10/2006, 15h40
  3. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01
  4. [Debutant(e)]importer une classe
    Par ber_jp dans le forum Eclipse Java
    Réponses: 18
    Dernier message: 12/05/2004, 17h39
  5. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30

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