VBS SendMail par adresse Orange

Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -  
Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train de faire un script .VBS afin de pouvoir envoyer du contenu.
J'ai récupéré un script que j'ai légèrement modifié afin de le faire correspondre à mes besoins. Malheureusement, j'ai un problème de taille :

Extrait de la console :
sendmail2.vbs(68, 1) (null): Le serveur a rejeté l'adresse de l'expéditeur. La réponse du serveur était : 550 5.1.0 Authentification requise. Authentication Required. OFR102_402 [402]


Je ne vois pas d'où le problème peut venir :

- Le port 25 est ouvert
- Le fait de demander une connexion SSL me retourne la même erreur.
- Je peux me connecter au WebMail avec les identifiants présents dans le code
- Il n'existe apparemment pas de cas semblables au mien et, dans d'autres sujets, suggéraient souvent de changer d'opérateur. Étant en entreprise, c'est pas forcément possible ^^°

Savez-vous d'où peut venir le problème ?

Code source de sendmail2.vbs
' ---------------------------------------------------------- 
' Script VBS d'envoi de mail en ligne de commande 
' 
' Syntaxe :  
'  sendmail -e<expediteur> -d<destinataire> -o<objet> -m<message> [-s] [-p<piece-jointe>] 
'  sendmail /e<expediteur> /d<destinataire> /o<objet> /m<message> /s<signature> /p<piece-jointe> 
' Paramètres obligatoires : 
'      <expediteur>   : adresse email de l'expéditeur 
'      <destinataire> : adresse email du destinataire 
'      <objet>        : objet (titre) du message 
'      <message>      : corps du message 
'                       Dans le cas d'un message sur plusieurs lignes, 
'                       utiliser la séquence "\n" pour chaque retour à la ligne 
'       Si le message se réduit à un nom de fichier (existant), 
'                       ce fichier sera lu et constituera le corps du message 
' Paramètres facultatifs : 
'      <signature>    : signature (peut-être un nom de fichier texte) 
'      <piece-jointe> : nom de fichier quelconque en pièce-jointe 
' NB : les chaines et nom de fichier sont à encadrer par des guillemets 
'      s'ils comportent des espaces 
'' 
' JC BELLAMY © 2002 
' ---------------------------------------------------------- 
Dim args, fso, f,shell 
Set fso   = WScript.CreateObject("Scripting.FileSystemObject") 
Set shell = WScript.CreateObject("WScript.Shell") 
Set args  = Wscript.Arguments 
ForReading=1 

nbargs=args.count 
defmoteur="cscript" 
If nbargs=0 or testarg("?") or testarg("h") Then Syntaxe "" 
' Test du moteur utilisé 
TestHost 

If not testarg("e") then Syntaxe "Email expéditeur absent" 
If not testarg("d") then Syntaxe "Email destinataire absent" 
If not testarg("o") then Syntaxe "Objet absent" 
If not testarg("m") then Syntaxe "Message absent" 

Exped=getarg("e") 
If not IsValidEmail(Exped) Then  Syntaxe "Email expéditeur invalide" 
Dest=getarg("d") 
If not IsValidEmail(Dest) Then  Syntaxe "Email destinataire invalide" 
Objet=getarg("o") 
Mess=getarg("m") 
body=GetString(Mess) 
If testarg("s") Then 
 Sign=getarg("s") 
 body=body & VBCRLF & GetString(Sign) 
 End If 
Set objEmail = CreateObject("CDO.Message") 
objEmail.From = Exped 
objEmail.To = Dest 
objEmail.Subject = Objet 
objEmail.Textbody = body 
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.orange.fr" 
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[NOM USER]" 
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "[MOT DE PASSE]" 
objEmail.Configuration.Fields.Update 
If testarg("p") Then 
 pj=getarg("p") 
 If fso.FileExists(pj) Then objEmail.AddAttachment pj 
 end if   
objEmail.Send 
Wscript.quit 
'-------------------------------------------------------------------- 
' Sous programme de test du moteur 
Sub TestHost 
dim rep 
strFullName =lcase(WScript.FullName) 
strappli=lcase(Wscript.ScriptFullName) 
i=InStr(1,strFullName,".exe",1) 
j=InStrRev(strFullName,"\",i,1) 
strCommand=Mid(strFullName,j+1,i-j-1) 
if strCommand<>defmoteur then 
 rep=MsgBox( _ 
 "Pour faciliter l'affichage, il est recommandé" & VBCRLF & _ 
 "de lancer ce script avec """ & defmoteur & """" & VBCRLF & _  
 "Cela peut être rendu permanent avec la commande" & VBCRLF & _ 
 "cscript //H:" & defmoteur &" //S /Nologo" & VBCRLF & _ 
 "Voulez-vous que ce soit fait automatiquement?", _ 
 vbYesNo + vbQuestion,strappli) 
 if rep=vbYes  then  
  nomcmd="setscript.bat" 
  Set ficcmd = fso.CreateTextFile(nomcmd) 
  ficcmd.writeline "@echo off" 
  ficcmd.writeline "cscript //H:" & defmoteur & " //S /Nologo" 
  ficcmd.writeline "pause" 
  params="" 
  For i = 0 To nbargs-1  
   params=params & " " & args(i) 
   next 
  ficcmd.writeline chr(34) & strappli & chr(34) & params 
  ficcmd.writeline "pause" 
  ficcmd.close 
  shell.Run nomcmd, SW_SHOWNORMAL,true 
     WScript.Quit 
  end if 
 end if 
end sub 
'-------------------------------------------------------------------- 
Sub Syntaxe(info) 
If info="" Then 
 msg=      "Script d'envoi de message (texte) en ligne de commande" & VBCRLF 
 msg=msg & "JC BELLAMY © 2002" & VBCRLF  
Else 
 msg="*** " & info & " ***" & VBCRLF 
 End If 
msg=msg & "------------------------------------------" & VBCRLF 
msg=msg & "Syntaxe : " & VBCRLF 
msg=msg & " sendmail -e<expediteur> -d<destinataire> -o<objet> -m<message>" & VBCRLF 
msg=msg & "          [-s<signature>] [-p<piece-jointe>]" & VBCRLF 
msg=msg & " sendmail /e<expediteur> /d<destinataire> /o<objet> /m<message>" & VBCRLF 
msg=msg & "          /s<signature> /p<piece-jointe>" & VBCRLF 
msg=msg & "Paramètres obligatoires :" & VBCRLF  
msg=msg & "     <expediteur>   : adresse email de l'expéditeur" & VBCRLF 
msg=msg & "     <destinataire> : adresse email du destinataire" & VBCRLF 
msg=msg & "     <objet>        : objet (titre) du message" & VBCRLF 
msg=msg & "     <message>      : corps du message" & VBCRLF 
msg=msg & "                      Dans le cas d'un message sur plusieurs lignes," & VBCRLF 
msg=msg & "                      utiliser la séquence ""\n"" pour chaque retour à la ligne" & VBCRLF 
msg=msg & "                      Si le message se réduit à un nom de fichier (existant)," & VBCRLF 
msg=msg & "                      ce fichier sera lu et constituera le corps du message"  & VBCRLF 
msg=msg & "Paramètres facultatifs :"  & VBCRLF 
msg=msg & "     <signature>    : signature (peut-être un nom de fichier texte)" & VBCRLF 
msg=msg & "     <piece-jointe> : nom de fichier quelconque en pièce-jointe" & VBCRLF 
msg=msg & "NB : les chaines et noms de fichier sont à encadrer par des guillemets" & VBCRLF 
msg=msg & "     s'ils comportent des espaces" & VBCRLF & VBCRLF 
msg=msg & "Exemples :"& VBCRLF 
msg=msg & " sendmail -eJean-Claude.Bellamy@wanadoo.fr -dbillg@microsoft.com -o""About VBS""" & VBCRLF 
msg=msg & "    -m""VBSCript is a\nvery exciting tool!"" -sJCB -pm:\bitmaps\img.gif" & VBCRLF 
msg=msg & " sendmail -ejc.bellamy@free.fr -dbillg@microsoft.com -o""More about VBS...""" & VBCRLF  
msg=msg & "    -m""d:\mes documents\txt\buglist.txt"" -sm:\texte\signature.txt" & VBCRLF & VBCRLF 
wscript.echo msg 
wscript.quit 
End Sub 
'-------------------------------------------------------------------- 
Function IsValidEmail(str) 
Dim re 
Set re = New RegExp 
re.pattern = "\w+\@[.\w]+"  'Modèle du style "nnnnnn@dddddd" 
IsValidEmail=re.Test(str) 
End Function 
'-------------------------------------------------------------------- 
Function testarg(param) 
testarg=false 
For i = 0 To nbargs-1 
 curarg=lcase(args(i)) 
 If left(curarg,1)="/" or left(curarg,1)="-" Then 
  If mid(curarg,2,len(param))=param Then 
   testarg=true 
   exit function 
   End If 
  End If 
 Next 
End Function 
'-------------------------------------------------------------------- 
Function getarg(param) 
getarg="" 
For i = 0 To nbargs-1 
 curarg=lcase(args(i)) 
 If left(curarg,1)="/" or left(curarg,1)="-" Then 
  If mid(curarg,2,len(param))=param Then 
   ch=mid(args(i),2+len(param)) 
   If (left(ch,1)="""") and (right(ch,1)="""") Then ch=mid(ch,2,len(ch)-2) 
   getarg= ch 
   exit function 
   End If 
  End If 
 Next 
End Function 
'-------------------------------------------------------------------- 
Function GetString(str) 
dim f 
If fso.FileExists(str) Then 
 set f=fso.OpenTextFile(str,ForReading) 
 GetString=f.ReadAll 
 f.Close 
else 
 GetString=Replace(str,"\n",VBCRLF,1,-1,1) 
 End If 
End Function 
'--------------------------------------------------------------------


Merci beaucoup !



<signature>N'oubliez pas le bouton '+' si la réponse vous a aidé !
A voir également:

2 réponses

Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   14
 
Up
0
Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   14
 
UP
0