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

ASP Discussion :

Envoi email en double


Sujet :

ASP

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

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    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 chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    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
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    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 éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    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
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    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 éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    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
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    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...

  8. #8
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    J'avais oublié que j'avais toujours ce ticket ouvert...
    Bon, en fait c'était sans doute lié à la version de IIS (W2003).
    J'ai migré le site sur un IIS10 et Ô miracle, finis les doubles envois...
    une latence du server sans doute,; mais ça m'aura bien pris la tête...!

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

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 Langage
    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. 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