Discussion: Envoi email en double

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    avril 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 187
    Points : 233
    Points
    233

    Par défaut Envoi email en double

    Bonjour tous,

    J'ai un soucis récurrent sur l'envoi des mails depuis un applicatif, avec un objet CDO.

    L'envoi fonctionne bien, juste lorsque j'ajoute une pièce jointe (ou plusieurs, mais de taille correcte, pas à 20Mo, je vous parle de pdf à 100ko...), le mail est envoyé quasi systématiquement en double.

    Quand je fait l'envoi sans pièce jointe, en html ou simple text, le problème ne se pose pas.
    Je me doute bien que tout ça est relatif au temps de chargement des pièces jointes, c'est pourquoi j'avais encapsulé tout ça dans une fonction avec un onerror (qui ne me retourne pas d'erreur puisque l'envoi fonctionne).

    Une idée sur ce qui peut se passer ? sur comment le résoudre ?
    Merci.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    juillet 2004
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2004
    Messages : 978
    Points : 1 708
    Points
    1 708
    Billets dans le blog
    1

    Par défaut

    Une aide efficace passe par du code source, hors le développement c’est pas magique.

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    avril 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 187
    Points : 233
    Points
    233

    Par défaut

    Pas de soucis, j'évoquais juste la question, histoire de savoir si ça rappelait des souvenirs à quelqu'un. Je te poste ça ci-dessous:


    La fonction :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     function SendEmail(From, too, copyto, hideCopyto, Subject, Body, AttachFile, Format)
     
    	On error resume next
    	'DECLARATIONS
    	Dim objConfig  ' As CDO.Configuration
    	Dim objMessage ' As CDO.Message
    	Dim Fields     ' As ADODB.Fields
     
    	if MAIL_XPRIORITY = "" then MAIL_XPRIORITY = 1 'Basse = 0 ; Normal = 1(défaut) ; Haute = 2
    	'MAIL-NOTIFICATION-TO
     
    	'CONSTANTES
    	Const cdoSendUsingMethod        = "http://schemas.microsoft.com/cdo/configuration/sendusing"
    	Const cdoSendUsingPort          = 2
    	Const cdoSMTPServer             = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
    	Const cdoSMTPServerPort         = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
    	Const cdoSMTPConnectionTimeout  = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
    	Const cdoSMTPAuthenticate       = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
    	Const cdoBasic                  = 1
    	Const cdoSendUserName           = "http://schemas.microsoft.com/cdo/configuration/sendusername"
    	Const cdoSendPassword           = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
    	Const cdoUseSSL					= "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
     
    	' Get a handle on the config object and it's fields
    	Set objConfig = Server.CreateObject("CDO.Configuration")
    	Set Fields = objConfig.Fields
     
    	' Set config fields we care about
    	With Fields
    		.Item(cdoSendUsingMethod)       = cdoSendUsingPort
     
    		.Item(cdoSMTPServer)            = SMTP_SERVER
    		.Item(cdoSMTPServerPort)        = SMTP_PORT
    		.Item(cdoSMTPAuthenticate)      = cdoBasic
    		.Item(cdoSendUserName)          = ACCOUNT_USER
    		.Item(cdoSendPassword)          = PWD_USER
     
    		.Item(cdoSMTPConnectionTimeout) = 60
    		.Item(cdoUseSSL)				= false
    		.Update
    	End With
     
    	Set objMessage = Server.CreateObject("CDO.Message")
    	Set objMessage.Configuration = objConfig
     
    	'CONTENT MAIL CREATION
    	if err.number = 0 then
    		with objMessage
    			set .Configuration = objConfig
    			.subject      =   Subject
    			.From         =   From
    			.To           =   Too
    			.Bcc          =   hidecopyto
    			.cc           =   copyto
     
    			select case format
    			case 0 : .TextBody    =   Body    'SIMPLE TEXT
    			case 1 : .HTMLBody    =   Body    'HTML TEXT
    			case 2 : .CreateMHTMLBody = Body  'PUBLIC OR PRIVATE PAGE
    			end select
     
    			'Set importance or Priority to high
    			.Fields("urn:schemas:httpmail:importance" ).value = MAIL_XPRIORITY
     
    			' Request read receipt
    			if MAIL_NOTIFICATION_TO <> "" then
    				.Fields("urn:schemas:mailheader:disposition-notification-to") = MAIL_NOTIFICATION_TO
    			end if
     
    			REM --- Envoi multiples
    			if AttachFile <> "" then
    				fic=split(AttachFile,"|")
    				for f = lbound(fic) to ubound(fic)
    					if fic(f) <> "" then .AddAttachment fic(f)
    				next
    			end if
    			'.TextBodyPart.Charset = "utf-8"
    			.BodyPart.Charset = "utf-8"
    			.Fields.update
    			.Send
    		End With
    	end if
     
    	Set Fields = Nothing
    	Set objMessage = Nothing
    	Set objConfig = Nothing
     
    	SendEmail=err.number
    	if err.number <> 0 then
    		session("ErrorSendEmail")=err.description
    	end if
    	err.clear
    end function
    L'appel à la fonction est sur la page post du formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'fullfilled values
    ...
     
     
    ret = SendEmail(MailFrom, MailTo, MailCC, MailCCI, MailSubject, MailContent, FileName, 1)
    if ret <> 0 then
    'ok
    window.close()
    else
    'ko
    response.write "Erreur "& session("ErrorSendEmail")
    end if
    Voilà... si vous avez une idée

  4. #4
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    mars 2006
    Messages
    3 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 332
    Points : 5 804
    Points
    5 804
    Billets dans le blog
    16

    Par défaut

    Bonsoir,
    Avec le code publié, il n' y a pas de raison qu'il soit envoyé en double.

    quels sont les paramètres de MAIL_XPRIORITY, MAIL_NOTIFICATION_TO ?

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    avril 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 187
    Points : 233
    Points
    233

    Par défaut

    Avec le code publié, il n' y a pas de raison qu'il soit envoyé en double.
    Oui c'est ce que je croyais aussi...

    quels sont les paramètres de MAIL_XPRIORITY, MAIL_NOTIFICATION_TO ?
    Les 2 variable sont définies à l'enregistrement du formulaire, fonction de case cochées ou non
    MAIL_XPRIORITY (priorité basse/normale) est par défaut à normale, soit 1
    MAIL_NOTIFICATION_TO (copie a l'expéditeur, c'est à dire moi) : là ça dépend si je coche ou non...

    Qu'ils soient cochés ou pas, de toute manière, le problème reste entier...
    ya des fois ou ça se passe bien (assez rare ou sur mail simple...) et la plupart du temps l'envoi avec pièce jointe ça envoi 2 fois...

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    mars 2006
    Messages
    3 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 332
    Points : 5 804
    Points
    5 804
    Billets dans le blog
    16

    Par défaut

    Bonjour,
    c'est peut-être en amont de ta fonction que cela se produit, genre un double clic sur envoi., ou un rafraîchissement de la page...

  7. #7
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    avril 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2004
    Messages : 187
    Points : 233
    Points
    233

    Par défaut

    Oui j'avais aussi envisagé le cas!
    Et c'est d'ailleurs pour ça pour ça que j'avais rajouté un contrôle lors du submit pour interdire un second clic.
    Mais si ça devait être en amont, le problème devrait se poser à chaque fois ???
    C'est pour ça que je suspecte un pb de poids de pj mais sans trouver de réponse adaptée...

Discussions similaires

  1. Automatiser des queries journalieres avec envoie email.
    Par tsconetti dans le forum Access
    Réponses: 1
    Dernier message: 08/07/2006, 18h57
  2. [Mail] Envoi email avec php
    Par laymounos dans le forum Fonctions
    Réponses: 8
    Dernier message: 01/06/2006, 14h31
  3. Problème d'envoi email sous Mandriva
    Par wxcvbn123456 dans le forum Réseau
    Réponses: 5
    Dernier message: 26/05/2006, 16h22
  4. [VB]Envoi email
    Par CCRNP dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/03/2006, 18h09
  5. [Mail] Envoi email de confirmation après inscription
    Par t-die dans le forum Fonctions
    Réponses: 3
    Dernier message: 14/12/2005, 14h56

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