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

VB.NET Discussion :

message d'erreur sur l'envoi dun email par smtp


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Points : 50
    Points
    50
    Par défaut message d'erreur sur l'envoi dun email par smtp
    bonjour tt le monde,
    depuis plusieurs jours de recherche, je suis pas capable de m'ensortir et pour cela je m'adresse a vous.
    j'ai un souci un niveau de lenvoi dun email en vb.net et voila message d'erreur:
    System.ArgumentOutOfRangeException: L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne. Nom du paramètre : length à System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) à System.String.Substring(Int32 startIndex, Int32 length) à PoMailPh.frmPrinc.fct_send_mail(String m_from, String m_to, String m_subject, Int32 m_type, String m_msg, String f_name) à PoMailPh.frmPrinc.fct_exec_sql(String strSql) à PoMailPh.frmPrinc.fct_fill_sql(String[] lines, String sqltype)

    et voila la partie de code qui permetd e faire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Private Sub fct_send_mail(ByVal m_from As String, ByVal m_to As String, ByVal m_subject As String, ByVal m_type As Integer, ByVal m_msg As String, ByVal f_name As String)
     
            Try
                'Variable pour la création du courriel
                Dim smtp_svr As SmtpMail
                Dim msg As New MailMessage
                Dim fileAttach As MailAttachment
                'Ne pas envoyer de message si no de PO non Défini ou si (line 676) le po ne contient pas de lignes, c'est simplement un po annuler mais qui sort quand meme de fdm
                If InStr(m_subject, "none") = 0 And InStr(m_msg, "line 676") = 0 Then
                    'Définition du serveur smtp
                    smtp_svr.SmtpServer = smtp
     
                    'Définition du core du courriel
                    msg.From = m_from.Trim                                                        'Envoyeur*****************************************
                    msg.BodyFormat = MailFormat.Html                                              'Format (txt ou html)*****************************
                    msg.To = m_to                                                                 'Destinataire*************************************
                    msg.Subject = m_subject                                                       'Sujet********************************************
                    msg.Body = m_msg                                                              'Message******************************************
                    msg.Priority = MailPriority.Normal                                            'priorité NORMAL, HIGH, LOW***********************
     
                    If m_type = 1 Then                                                            'Pièce jointe seulement si c'est un envoi de po***
                        fileAttach = New MailAttachment(f_out & f_name & ".xls")                  'Création d'une piece jointe**********************
                        msg.Attachments.Add(fileAttach)                                           'Ajout de la pièce jointe*************************
                    End If
                    'Envoi du courriel au destinataire
                    smtp_svr.Send(msg)
                End If
            Catch ex As Exception
                fct_send_mail(envoyeur, warning, "ERREUR PO VIA MAIL " & f_name, 0, ex.ToString, "none")
                '# erreur no 6
                fct_exec_sql("UPDATE pur_order SET err=6 WHERE pur_order.po_number='" & f_name.Substring(3, 8) & "'")
            End Try
     
        End Sub
    merci beaucoup et jai vraiment besoin de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    ben a priori c'est ton substring qui est pas bon, la chaine doit être trop courte par rapport aux arguments que tu as donnés

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Points : 50
    Points
    50
    Par défaut Message d'erreur sur l'envoi d'un email par smtp
    merci beaucoup pour ta reponse,
    je sais que ca un rapport avec la substring, mais sincerement je ne sais pas comment regler ca.
    si tu as une solution SVP, je serais tres reconnaissant.
    Merci une autre fois

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu essaies d'extraire de f_name une sous chaine qui commence à la position 3 et a une longueur de 8, donc il faudrait que la f_name fasse au moins 11 caractères, mais visiblement ce n'est pas le cas. Mais je ne vois pas comment je pourrais te donner une solution, vu que je sais même pas ce que tu cherches à faire

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Points : 50
    Points
    50
    Par défaut message d'erreur sur l'envoi dun email par smtp
    ce que je cherche a faire, c'est faire marcher l'affaire d'envoi d'emails avec un fichier xls attache, mais ce message d'erreur empeche le programme a le faire.
    Merci bcp

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    A mon avis c'est pas ça qui empeche l'envoi du mail... l'instruction qui plante est dans le bloc catch, et si tu arrives dans le bloc catch c'est que tu as déjà eu une erreur avant. Regarde le détail de l'exception pour voir ce qui se passe

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Dans ton code il y a des chose bizard... comme ce que j'ai mis en rouge :
    Citation Envoyé par l_achraf Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Private Sub fct_send_mail(ByVal m_from As String, ByVal m_to As String, ByVal m_subject As String, ByVal m_type As Integer, ByVal m_msg As String, ByVal f_name As String)
    
            Try
                'Variable pour la création du courriel
                Dim smtp_svr As SmtpMail
                Dim msg As New MailMessage
                Dim fileAttach As MailAttachment
                'Ne pas envoyer de message si no de PO non Défini ou si (line 676) le po ne contient pas de lignes, c'est simplement un po annuler mais qui sort quand meme de fdm
                If InStr(m_subject, "none") = 0 And InStr(m_msg, "line 676") = 0 Then
                    'Définition du serveur smtp
                    smtp_svr.SmtpServer = smtp
    
                    'Définition du core du courriel
                    msg.From = m_from.Trim                                                        'Envoyeur*****************************************
                    msg.BodyFormat = MailFormat.Html                                              'Format (txt ou html)*****************************
                    msg.To = m_to                                                                 'Destinataire*************************************
                    msg.Subject = m_subject                                                       'Sujet********************************************
                    msg.Body = m_msg                                                              'Message******************************************
                    msg.Priority = MailPriority.Normal                                            'priorité NORMAL, HIGH, LOW***********************
    
                    If m_type = 1 Then                                                            'Pièce jointe seulement si c'est un envoi de po***
                        fileAttach = New MailAttachment(f_out & f_name & ".xls")                  'Création d'une piece jointe**********************
                        msg.Attachments.Add(fileAttach)                                           'Ajout de la pièce jointe*************************
                    End If
                    'Envoi du courriel au destinataire
                    smtp_svr.Send(msg)
                End If
            Catch ex As Exception
                fct_send_mail(envoyeur, warning, "ERREUR PO VIA MAIL " & f_name, 0, ex.ToString, "none")
                '# erreur no 6
                fct_exec_sql("UPDATE pur_order SET err=6 WHERE pur_order.po_number='" & f_name.Substring(3, 8) & "'")
            End Try
    
        End Sub
    Celà revien à dire que si il y a une erreur tu rapelle la fonction fct_send_mail qui contien l'erreur en récursif... bref ca risque d'être une boucle infinie... (euh non ca ne risque pas ca devrait faire une boucle infinie...)
    autre chose, si dans le cacht tu met : msgbox(ex.tostring)
    ca donne quoi?
    car dans ton cas ce qui serais interessant de savoir c'est d'ou provien l'erreur dans le try, pas de savoir pourquoi tu refais planter tout dans le catch qui est censé récupérer l'erreur...

    EDIT : je me suis fais devancer par l'excellent tomlev, voila ce qui arrive quand on va au toilette durant la rédaction d'un post

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Points : 50
    Points
    50
    Par défaut message d'erreur sur l'envoi dun email par smtp
    merci pour vos reponses,
    je viens de verifier la longueur de f_name dans la BD, ya plus de 11 caracteres.
    et la fonction fct_send_mail() que j'appele dans le catch est le contenu de message d'erreurs que je recois dans ma boite email, alors surement le contenu de ex.ToString est le meme que je viens de declarer en haut.
    alors je sais vraiment pas comment je vais regler ce probleme

Discussions similaires

  1. Envoi d'email par smtp avec C++ (Dev-Cpp)
    Par zeleyou dans le forum Dev-C++
    Réponses: 6
    Dernier message: 20/04/2015, 12h21
  2. [Servlet] message d'erreur sur un OutputStream
    Par jehlg dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 05/04/2006, 17h03
  3. message d'erreur sur test module
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 23/11/2005, 20h19
  4. message d'erreurs sur copie de fichier
    Par screeminelle dans le forum C++
    Réponses: 9
    Dernier message: 01/11/2005, 14h21
  5. [CR10] Pquoi absence du message d'erreur sur les Nulls ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/11/2004, 15h30

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