Remplissage automatisé de messages individuels

Résolu
Manolis1984 -  
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   - 21 sept. 2022 à 18:44

Bonjour,

J'ai une liste de 5000 mails à qui je souhaite écrire individuellement le même mail (envoi de CV). Pour chaque contact, j'ai complété les champs nom, prénom, société.

Je souhaite savoir s'il y a la possibilité d'avoir un modèle de mail qui puisse se compléter automatiquement avec les détails de chaque individu (nom, prénom, société, là où je le souhaite dans le texte) puis de l'envoyer à l'adresse correspondante. Je peux faire cela contact par contact, mais je souhaite que le mail soit au minimum complété automatiquement (Bonjour Mme PRENOM NOM, et à toute l'équipe de SOCIETE).

Toute variante peut bien entendu être envisagée.

Mailchimp, Sendinblue, etc. considèrent que je n'ai pas les autorisations nécessaires pour envoyer à ces contacts. Il s'agit pourtant de mails pro récupérés dans la rubrique "contactez-nous" de chaque société...

Merci d'avance.
Windows / Firefox 104.0

A voir également:

3 réponses

barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

Bonjour,

Techniquement c'est possible en passant par un script qui automatise la création et l'envoi de chaque email.

Le problème c'est que si tu ne passes pas par un service d'emailing tel que Mailchimp ou SendinBlue, tu vas devoir pas mal fragmenter les envois car aucun fournisseur de messagerie ne te laissera envoyer 5000 emails, au mieux je dirais 500 par jour maximum (en passant par Gmail).



0
Manolis1984
 

Merci beaucoup pour cette réponse.

Sais-tu à qui puis-je m'adresser pour qu'il me fasse un tel script ? J'imagine que ce n'est pas très compliqué, mais ce n'est absolument pas mon domaine de connaissances.

Merci également pour les précisions concernant le nombre maximal de mails journaliers. Je ne les envoie pas avec gmail mais avec mon propre domaine (chez ovh). Je crois qu'ils ont une limite de 200 mails par heure. Quoi qu'il en soit, je pense qu'il est prudent de ne pas abuser en envoyant tout le même jour!

0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Manolis1984
 

Je peux te faire le script, ça sera un script .bat

Pour l'envoi de mail je passerai par la commande externe SwithMail.

Il faudrait que tu me fournisses le modèle et la structure de la liste.

Est-ce que OVH autorise le relai de messages ?

Quel est le format de la liste d'emails (xls, csv, txt) ?

0
Manolis1984 > barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention  
 

Merci beaucoup pour ta proposition !

Je viens de faire des recherches sur le site de OVH mais n'ai pas trouvé cette information. Je vais leur demander. Est-ce quelque chose que j'aurais pu constater de moi-même par la pratique ? (je ne fais qu'envoyer des mails pro via Thunderbird avec ce mail-là).

Comment puis-je te contacter en privé ?

0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Manolis1984
 

Pour les messages privés, clique sur mon pseudo.

0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention  
 

Je crois qu'il te faut un compte pour pouvoir m'envoyer des mp

0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

...



0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

Voilà le script ms-dos pour faire de l'emailing de masse à partir d'une liste contacts contenus dans un fichier .csv (provenant de la conversion d'un fichier Excel) :

@echo off
mode con cols=120 lines=30
title %~nx0
color 0F

: --------------------------------------------------------------------------------------
: on définit l'encodage des caractères pour la console
: --------------------------------------------------------------------------------------

ver | find "10.0." >nul && chcp 65001 >nul || chcp 28591 >nul
ver | find "11.0." >nul && chcp 65001 >nul

: --------------------------------------------------------------------------------------
: on définit les variables
: --------------------------------------------------------------------------------------

setlocal enableextensions enabledelayedexpansion

set "password=1234"

set /a delaiEntreDeuxSeries=5200
set /a delaiEntreDeuxEnvois=1

set "log=journal_des_envois.txt"

rem attention : ne surtout pas modifier les 2 variables ci-dessous
set /a totalAEnvoyer=0
set /a nbEnvois=0

: --------------------------------------------------------------------------------------
: on vérifie les pré-requis
: --------------------------------------------------------------------------------------

cd /d %~dp0\config || exit /b 1

if not exist "SwithMail.exe" (exit /b 1)
if not exist "SwithMailSettings.xml" (exit /b 1)
if not exist "emailing_template.txt" (exit /b 1)

for %%A in (contacts*.csv) do set "contacts=%%A"
if not defined contacts (exit /b 1)

: --------------------------------------------------------------------------------------
: on définit la limite d'envois max par heure
: --------------------------------------------------------------------------------------

:choix
set "limiteEnvois=" 
cls & echo. & set /p limiteEnvois="Veuillez indiquer le nombre maxi d'envois par heure (150 par défaut) : "
if not defined limiteEnvois (set /a limiteEnvois=150)

set "validation="
echo. & set /p validation="Merci de confirmer de choix (!limiteEnvois! envois par heure) (O)ui-(N)on : "
if not defined validation (goto :choix)
set "validation=!validation: =!"
if not "!validation!"=="o" (if not "!validation!"=="O" (goto :choix)) 
echo. & echo ###################################### DEMARRAGE DES ENVOIS DE COURRIELS ######################################

: --------------------------------------------------------------------------------------
: on détermine le nombre d'envois à effectuer ainsi que les envois restants
: --------------------------------------------------------------------------------------

for /f "delims=" %%A in ('findstr "@" "%contacts%"') do set /a totalAEnvoyer+=1
if exist "%log%" (for /f "delims=" %%A in ('type "%log%"') do set /a nbEnvois+=1)

: --------------------------------------------------------------------------------------
: on déclenche l'envoi d'un email pour chaque contact du fichier
: --------------------------------------------------------------------------------------

for /f "tokens=1,2,3,* delims=;" %%A in ('findstr "@" "%contacts%"') do call :envoi "%%~A" "%%~B" "%%~C" "%%~D"

echo. & echo ######################################### FIN DES ENVOIS DE COURRIELS #########################################
echo. & pause
exit /b 0

: --------------------------------------------------------------------------------------
: fonction d'envoi d'email
: --------------------------------------------------------------------------------------

:envoi

rem on n'envoie pas si l'envoi/courriel figure déjà dans le fichier journal
if exist "%log%" (findstr /l %1 "%log%" >nul && goto :eof)

timeout /t %delaiEntreDeuxEnvois% /nobreak >nul
call :horodatage

SwithMail.exe /s /x "SwithMailSettings.xml" /pass %password% /to %1 /btxt "emailing_template.txt" /p1 %3 /p2 %2 /p3 %4 /l "%log%"

if %ERRORLEVEL%==0 (set "etat=réussi") else (set "etat=échoué")
echo. & echo ^>^>^> Envoi !etat! le !maDate! à !heure! ==^>^> "%~4" [%~1]

call :progression

call :temporisation

goto :eof

: --------------------------------------------------------------------------------------
: fonction pour afficher la progression des envois
: --------------------------------------------------------------------------------------

:progression

set /a nbEnvois+=1
set /a pourcent=!nbEnvois!*100/%totalAEnvoyer%
title Progression des envois : !pourcent! %% [!nbEnvois! sur %totalAEnvoyer%]

goto :eof

: --------------------------------------------------------------------------------------
: fonction pour temporiser si la limite est atteinte
: --------------------------------------------------------------------------------------

:temporisation

set /a modulo=!nbEnvois! %% !limiteEnvois!

if !modulo! equ 0 (
	echo. & echo ################################### LIMITE ATTEINTE - TEMPORISATION EN COURS ##################################
	timeout /t %delaiEntreDeuxSeries% /nobreak
	echo. & echo ########################################### FIN DE LA TEMPORISATION ###########################################
)

goto :eof

: --------------------------------------------------------------------------------------
: fonction pour récupérer la date et l'heure
: --------------------------------------------------------------------------------------

:horodatage

for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set "maDate=%%a-%%b-%%c"
for /f "tokens=1,2 delims=:" %%a in ('time /t') do set "heure=%%a:%%b:%time:~6,2%"

goto :eof

#

Le script .bat (ci-dessus) nécessite la présence d'un dossier "config" contenant ceci :

- le fichier "SwithMail.exe" disponible ici : https://sourceforge.net/projects/swithmail/

- un fichier "contacts.csv" contenant 4 colonnes (email, nom, prénom, société)

- un fichier "emailing_template.txt" contenant le corps du message (éventuellement en HTML)

- un fichier "SwithMailSettings.xml" contenant les paramètres d'envoi, par exemple :

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<SwithMailSettings>
  <ServerSettings>
    <FromName>Toto Lasticot</FromName>
    <FromAddress>toto.lasticot@gmail.com</FromAddress>
    <Username />
    <Password>jvcj12hlvbb75lbljhb</Password>
    <ObscurePassword>False</ObscurePassword>
    <MailServer>smtp.gmail.com</MailServer>
    <MailServerPort>587</MailServerPort>
    <SSL>True</SSL>
    <Encoding />
    <RequestReceipt>False</RequestReceipt>
    <MessageID>True</MessageID>
  </ServerSettings>
  <EmailAddresses>
    <To />
    <CC />
    <BCC />
    <ReplyTo>toto.lasticot@gmail.com</ReplyTo>
  </EmailAddresses>
  <Attachments>
    <AttachmentPath />
  </Attachments>
  <EmailContent>
    <HTML>True</HTML>
    <DontReplaceNewLine>False</DontReplaceNewLine>
    <Subject>Candidature spontanée</Subject>
    <Body />
    <BodyTxtFile />
  </EmailContent>
</SwithMailSettings>

ps : ce fichier .xml est configuré pour des envois à partir d'une adresse Gmail (préalablement configurée pour autoriser le relai d'emails)



0