Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

envoyer mail sur yahoo.fr

5 réponses
Avatar
Dan
Bonjour a tous.
Je peux envoyer des mails avec l'instruction:
succes = objEmail.Send()
mais lorse qu'il sagit d'une adresse yahoo.fr je recupere l'erreur :
Le serveur a rejeté une ou plusieurs adresses de destinataires. La réponse
du serveur était : 504 5.5.2 < i b>: Recipient address rejected: need
fully-qualified address

qu'en pensez vous?
D'avance merci de votre aide

5 réponses

Avatar
Jérémy Jeanson
Bonjour Dan,

Peut être pourrais tu nous en dire un peu plus sur ce code : tu utilise
les class mail et serveur smtp du framework ?
Il fonctionne avec d'autres adresses?
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Dan
Salut Jérémy
oui mon code fonctionne bien avec les autres adresses.
J'avais deja abordé mon probleme car je voulais utiliser un code qui ne
m'oblige pas a metre mon adresse smltp en dure dans mon pg pour que cela
fonctionne depuis d'autres PC r
voici mon code qui ferai dresser les cheveux a un puriste mais ca marche
si tu as une autre solution qui me permette de ne pas metre d'adresse smtp
en dure cela me conviendrai aussi


Private Sub envmail(ByRef indic As Object)
Dim comptmail = 0
envoi = LpieceJ.Text
aaa = Split(envoi, ";")
Dim objEmail As Object

text_Renamed = Tmessage.Text
TAILLE = 0

If Expediteur.Text = "" Or Len(Expediteur.Text) < 5 Or
InStr(Expediteur.Text, ".") < 1 Or InStr(Expediteur.Text, "@") < 3 Then 'Si
un des champs est vide, Erreur
MsgBox("Veuillez entrer vos coordonnées SVP",
MsgBoxStyle.Exclamation, "Erreur")
GoTo fini
End If
If EnvoiA.Text = " " And EnvoiCC.Text = " " And EnvoiCI.Text = " "
Then 'Si un des champs est vide, Erreur
MsgBox("Veuillez entrer les coordonnées du destinataire SVP",
MsgBoxStyle.Exclamation, "Erreur")
GoTo FIN
End If
If EnvoiA.Text = "" And EnvoiCC.Text = "" And EnvoiCI.Text = "" Then
'Si un des champs est vide, Erreur
MsgBox("Veuillez entrer les coordonnées du destinataire SVP",
MsgBoxStyle.Exclamation, "Erreur")
GoTo FIN
End If
message:
TAILLE = 0
objEmail = CreateObject("CDO.Message") 'Sinon, Envoyer Mail
objEmail.From = Expediteur.Text ' Nom envoyeur
objEmail.To = EnvoiA.Text
objEmail.CC = EnvoiCC.Text
objEmail.bCC = EnvoiCI.Text


'*************************
objEmail.Subject = Text3.Text ' Sujet du message


'**PIECE JOINTE*********************


Dim ii
ii = -1
Dim name As String = ""

cpjoint:
ii = ii + 1
' If ii = 0 Then GoTo ENVOIM
If ii > (UBound(aaa, 1)) Then GoTo ENVOIM

If aaa(ii) = "" Then GoTo cpjoint
objEmail.AddAttachment(aaa(ii)) ' Si case cochée, alors Pièce jointe
activée
' on recupere le nom du fichier
name = name & System.IO.Path.GetFileName(aaa(ii)) & " "
'*****************************
TAILLE = TAILLE + (FileLen(aaa(ii)) / 1000)
Dim bb = aaa(ii)

aaa(ii) = ""


'titre1(ii) = ""
If TAILLE < 500 Then GoTo cpjoint
ENVOIM:
TAILLE = 0

objEmail.Textbody = text_Renamed ' Corps du message
Cursor = System.Windows.Forms.Cursors.WaitCursor
Dim succes As Boolean

succes = objEmail.Send()
Cursor = System.Windows.Forms.Cursors.Default
comptmail = comptmail + 1
If succes = False Then
REPONCE.Text = REPONCE.Text & vbCrLf & "Mail " & comptmail & "
envoyé!" & " " & name
Else
REPONCE.Text = REPONCE.Text & vbCrLf & ("Mail " & comptmail & "
erronnée!") & " " & name
End If
'on eface la liste des ficjiers envoyés
name = ""
If UBound(aaa) = 0 Then GoTo TERMINE
If ii > (UBound(aaa)) Or ii = (UBound(aaa)) Then GoTo TERMINE
Dim ENVOI1 = Join(aaa, ";")

If ENVOI1 = "" Then GoTo TERMINE
aaa = Split(ENVOI1, ";")
bb = aaa(1)

GoTo message
'********************************
TERMINE:

'Dim ENVOI2 As Integer = Join(test, ";")
'aaa = Split(ENVOI2, ";")


GoTo fini
FIN:
Cursor = System.Windows.Forms.Cursors.Default


fini:
End Subr


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour Dan,

Peut être pourrais tu nous en dire un peu plus sur ce code : tu utilise
les class mail et serveur smtp du framework ?
Il fonctionne avec d'autres adresses?
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr


Avatar
Jérémy Jeanson
Bonjour Dan,

arg, ça fait mail... oui c'est vrai j'avais oublié que tu faisais une
migration (t'en fais pas on est nombreux à être passé par là).

Celà peux sembler idiot, mais as tu vérifier que sur ton réseau tu
pouvais envoyer un mail sur les adresse yahoo (à partir d'outlook par
exemple)?

Si non c'est vrai que je t'avais proposer de te présenter les fichiers
de config, 1000 excuses pour cet oublie. On va corriger le tir :

L'objectif du fichier de config est de te permettre d'avoir un fichier
xml stockant des paramètres pour ton application. Le gros avantage est
que dans ton application l'usage de ce fichier se fait par un simple
objet dont chaque propriété correspond à un donnée de configuration.

Par exemple pour stocker le nom d'un serveur smtp :
Il faut aller dans la fenêtre propriété du projet, onglet "Paramètres".
On a alors accès à une grille dans laquelle on peut saisir nos
partamètre. Il faut pour chaque paramètre donner :
- Un nom (Smtp dans notre cas)
- Un Type (String pour stocker une String... simple, non?)
- Une portée (pour l'application ou l'utilisateur de l'application, peut
être laissé sur utilisateur).
- Une Valeur (smtp.mondomaine.fr par exemple).

Le fichier de configuration est alors généré automatiquement.
On peut alors utiliser l'objet suivant pour accéder à la variable Smtp :
My.Settings.Default.Smtp

Pour modifier la même variable sans visual studio on peut modifier le
contenu du fichier app.config ou alors plus simplement via un code comme
celui-ci:
My.Settings.Default.Smtp = "smtp.autredomaine.fr"
My.Settings.Default.Save()

Facile non? Je crois même que je vais en faire un tuto. (bon il s'agit
là de l'approche la plus courte, en y regardant de plus près tu verras
qu'on peut faire bien plus et notamment stocker de objet complexes à
partir du moment qu'ils sont sérialisables)

bon je crois que c'est à toi de jouer maintenant ;)

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Dan
Salut Jérémy
merci de ton message, je découvre des fonctionnalités que j'ignorais et qui
m'ouvre de nouvelles perspectives.
Dans mon cas précis j'ai tout de même un souci, si je veux installer mon
logiciel sur un autre PC il faudra que j'informe d'une manière ou d'une
autre l'adresse SMTP alors que dans le cas présent je n'ai pas à le faire,
je suppose que cette adresse se trouve bien quelque part sur le PC et que je
devrais être en mesure de le retrouver automatiquement par programme.
J'ai fait un petit essai selon tes indications et cela fonctionne bien et
très rapidement, ce qui est un avantage, je n'ai pas fait d'essais sur Yahoo
pour le moment.
Justement pour aborder le problème de Yahoo, comment explique tu qu'avec
Outlook ou la messagerie de Vista je n'ai aucun problème pour envoyer
démêlent sur Yahoo et qu'avec mon programme dont je t'ai fourni le code tout
fonctionne sauf Yahoo.
Est-ce que selon toi ce ne serait pas au niveau du serveur de Yahoo qu'il y
aurait un certain filtre qui interdirait les messages provenant ou émis
d'une certaine façon ?
A+.
Dan


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour Dan,

arg, ça fait mail... oui c'est vrai j'avais oublié que tu faisais une
migration (t'en fais pas on est nombreux à être passé par là).

Celà peux sembler idiot, mais as tu vérifier que sur ton réseau tu pouvais
envoyer un mail sur les adresse yahoo (à partir d'outlook par exemple)?

Si non c'est vrai que je t'avais proposer de te présenter les fichiers de
config, 1000 excuses pour cet oublie. On va corriger le tir :

L'objectif du fichier de config est de te permettre d'avoir un fichier xml
stockant des paramètres pour ton application. Le gros avantage est que
dans ton application l'usage de ce fichier se fait par un simple objet
dont chaque propriété correspond à un donnée de configuration.

Par exemple pour stocker le nom d'un serveur smtp :
Il faut aller dans la fenêtre propriété du projet, onglet "Paramètres". On
a alors accès à une grille dans laquelle on peut saisir nos partamètre. Il
faut pour chaque paramètre donner :
- Un nom (Smtp dans notre cas)
- Un Type (String pour stocker une String... simple, non?)
- Une portée (pour l'application ou l'utilisateur de l'application, peut
être laissé sur utilisateur).
- Une Valeur (smtp.mondomaine.fr par exemple).

Le fichier de configuration est alors généré automatiquement.
On peut alors utiliser l'objet suivant pour accéder à la variable Smtp :
My.Settings.Default.Smtp

Pour modifier la même variable sans visual studio on peut modifier le
contenu du fichier app.config ou alors plus simplement via un code comme
celui-ci:
My.Settings.Default.Smtp = "smtp.autredomaine.fr"
My.Settings.Default.Save()

Facile non? Je crois même que je vais en faire un tuto. (bon il s'agit là
de l'approche la plus courte, en y regardant de plus près tu verras qu'on
peut faire bien plus et notamment stocker de objet complexes à partir du
moment qu'ils sont sérialisables)

bon je crois que c'est à toi de jouer maintenant ;)

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr


Avatar
Jérémy Jeanson
Bonjour Dan,

Pour ce qui est du fait que Yahoo ne passe pas, je n'ai pas la moindre
explication car dans le cas où cela passe sous Outlook, pourquoi pas sur
ton application!?
Pour ce qui est d'un filtrage côté serveur de Yahoo, je pense que c'est
un peu tiré par les cheveux... comment yahoo pourrait se permettre
d'interdire un client de messagerie?!

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr