Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/10/2006, à 07:30

next-d

script ou .... (pour envoyer des mails)

j'ai une liste d'email et je voudrais envoyer un email avec une piece jonte sans etre blacklister par mon fai. Comment faire un script ou autre, afin d'envoyer 5 emails par 5 emails avec des pauses histoire de ne pas avoir de pb. (c'est pas pour faire du spam mais pour une association car pour le moment ca me prend plus d'une heure à chaque fois)
avez vous des idées? voir un coup de main...:)
merci d'avance

Hors ligne

#2 Le 09/10/2006, à 13:52

kaworu

Re : script ou .... (pour envoyer des mails)

Salut !
un ptit combo de la commande mail et la commande sleep ?


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#3 Le 10/10/2006, à 01:50

mrf

Re : script ou .... (pour envoyer des mails)

je comprends pas pourquoi t'es blacklisté ... j'ai souvent fait des mailing, et ça passe, comme une lettre à la poste smile (enfin on avait un serveur mail rien qu'à nous, peut-être que ça joue)

Hors ligne

#4 Le 10/10/2006, à 06:51

lunique

Re : script ou .... (pour envoyer des mails)

Moi aussi sa m'etonne, lorsque je vois que j'ai des connaissances qui font suivre certains a mail à toute leur liste de contact, et sa passe sans probleme... t'es chez quel FAI  ?

Hors ligne

#5 Le 10/10/2006, à 08:31

next-d

Re : script ou .... (pour envoyer des mails)

mon fai est wanadoo
comment marche la commande mail et sleep?
quel sont les packages a installer?
je crois que je vais avoir besoin d'un coup de main smile

Hors ligne

#6 Le 13/10/2006, à 12:50

silence

Re : script ou .... (pour envoyer des mails)

Bonjour!

mail envoie des mails par la console, il y a un post à son sujet:
http://forum.ubuntu-fr.org/viewtopic.php?id=52977

sleep est une commande qui endort un programme: sleep 3 = attends 3 secondes.

un combo des deux ressemblerait à un truc du genre (en shell) :

while exist_expediteur
do
mail à_expediteur
sleep un_certain_temps
done

Le problème qui se pose c'est qu'il faut aller chercher l'adresse de l'expéditeur quelque part et que ce n'est pas forcément aisé...


Selon le format du carnet d'adresse, je peux peut-être t'aider:
J'utilise un base de donnée sqlite comme carnet d'adresse. J'ai un script python qui permet de faire un publipostage mail à partir de cette base de donnée. Une légère modification permettrait d'intercaller une pause tous les x envois. Mais la question est de savoir si je saurais coder l'acces à ton carnet d'adresse.

donc:
Ton carnet d'adresse est sous quel format?

Dernière modification par silence (Le 13/10/2006, à 12:51)

Hors ligne

#7 Le 18/10/2006, à 13:12

paul66556

Re : script ou .... (pour envoyer des mails)

fichiers txt pour le moment
un avec tout les mails et un autre avec ce qui ne veulent plus recevoir les news

merci de ton aide

#8 Le 19/10/2006, à 19:20

silence

Re : script ou .... (pour envoyer des mails)

Voilà un script qui devrait (du moins j'espère) répondre à ta demande
Il faut toutefois aller chercher un autre script: imailer, qui envoie des mails avec pièces jointes, ici:
http://nojhan.free.fr/article.php3?id_article=22
Dans ce script, il faut remplacer la ligne

writer.addheader ("Date",time.asctime(time.localtime(time.time())))

par celle-ci:

writer.addheader ("Date",time.strftime("%a, %d %b %Y %H:%M:%S %z"))

Sinon la date envoyée n'est pas compréhensible par le client mail du destinataire.
Il faut aussi le paramétrer (mail de l'expéditeur, adresse de ton serveur smtp...)

Et voici un script qui va chercher l'adresse dans un fichier, et fait une pause de temps en temps avant d'envoyer un mail.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import time

###introduction des données###
donnees='/home/toto/fichier_des_adresses'                         # ici l'adresse du fichier contenant les adresses
x=y                       #remplacer y par le temps d'attente (en secondes) tous les 5 envois
expediteur='machin@truc.net'        #remplacer par l'adresse mail de l'expéditeur
pjs=[]

fichier= raw_input('\033[32mfichier contenant le mail?\033[0m ')  #on demande ou est le mail à envoyer
sujet= raw_input('\033[32mobjet du mail?\033[0m ')                # on demande l'objet du mail

while 1:
    pj = raw_input('\033[32mpiece jointe?\033[0m ')               # si il n'y a pas de pièce jointe, taper entrer
    if pj == '':
        break
    else:
        pjs.append(pj)

f=open(fichier, 'r')                                                    # On ouvre le fichier contenant le mail
mail=f.read()                                                           # On lit son contenu
f.close()                                                                   # On ferme le fichier contenant le mail

### envoi des mails
d=open(donnees, 'r')                     #ouverture du fichier de données en lecture seule

liste_donnees=d.readlines()         #on fait une liste des données

for line in liste_donnees:               #pour chaque ligne dans le fichier de données
    if line.split(';')[1] == '1':        #si le second morceau de ligne découpée par des ';' est 1
        dest=[]                             #on crée une liste de destinataires vide
        dest.append(line.split(';')[0])                     #on ajoute le destinataire (qui est le premier morceau de la ligne découpée par des ';') à la ligne

        from imailer import iMailer      # alors on va chercher la classe iMailer dans imailer
        mailer = iMailer()               # on initialise iMailer
                                 # on envoie le mail
        print "envoi du mail à ", dest
        mailer.MailerString(expediteur, sujet, dest, mail, pjs)
     
    num_ligne=liste_donnees.index(line)    #on repère le numéro de la ligne actuelle
    if num_ligne%5 == 0 and num_ligne != 0:    #si on est dans une ligne multiple de 5, hormis la première ligne
        print "on attends ", x , " secondes"
        time.sleep(x)                                   #On attends x secondes

d.close()                                #fermeture du fichier de données.

Je n'ai pas pris le temps de le tester, j'espère qu'il fonctionne.

Il faut que tu modifies le format de ton fichier texte contenant les adresses sous cette forme:

machin@truc;1;
bidule@chose;1;
tete@toto;0;

Si 1 le mail est envoyé, sinon l'adresse est ignorée.

met les deux scripts dans le même dossier et appelle celui que j'ai fait en console, il se chargera d'appeller imailer.

Effectue des tests avec tes propres adresses mail avant d'utiliser le script professionnellement.
Je le testerai de mon côté quand j'aurai un peu de temps.

A plus!

Dernière modification par silence (Le 29/11/2006, à 21:41)

Hors ligne

#9 Le 27/11/2006, à 16:24

next-d

Re : script ou .... (pour envoyer des mails)

voila l'erreur
File "mailer.py", line 14
    if pj = '':
          ^
SyntaxError: invalid syntax

grrr....

Hors ligne

#10 Le 27/11/2006, à 16:28

bakalegum_

Re : script ou .... (pour envoyer des mails)

en python c est

if pj==truc:

et pas

if pj=truc:

Hors ligne

#11 Le 27/11/2006, à 17:09

next-d

Re : script ou .... (pour envoyer des mails)

je test

Hors ligne

#12 Le 27/11/2006, à 17:24

next-d

Re : script ou .... (pour envoyer des mails)

non smile
if d.readlines.index(line)%5 = 0     #on attends une heure toutes les 5 lignes
                                 ^
SyntaxError: invalid syntax

Hors ligne

#13 Le 29/11/2006, à 19:10

silence

Re : script ou .... (pour envoyer des mails)

Bonjour!
if d.readlines.index(line)%5 == 0 :
sera déjà mieux...


Pour la suite je ne sais pas encore...
    (Je me demande si c'était une bonne idée de poster un peu de code si je n'ai pas le temps de le faire proprement...
Désolé pour ces désagréments...)

A plus!

PS: J'ai modifié le script, je fais actuellement des tests...

Dernière modification par silence (Le 29/11/2006, à 19:56)

Hors ligne

#14 Le 29/11/2006, à 21:33

silence

Re : script ou .... (pour envoyer des mails)

Bonsoir,
testé, modifié, re-testé...

et ça fonctionne cool

Bon, il se peut que j'ai fait des fautes d'étourderies en modifiant le programme ci-dessus. roll

J'espère que tu as encore un peu de patience next-d...

A plus!

Edit: non, pas d'étourderie...

Dernière modification par silence (Le 29/11/2006, à 21:46)

Hors ligne

#15 Le 30/11/2006, à 12:06

next-d

Re : script ou .... (pour envoyer des mails)

tu as koi comme modif
car chez moi sad marche pas

Hors ligne

#16 Le 30/11/2006, à 20:34

silence

Re : script ou .... (pour envoyer des mails)

J'ai modifié beaucoup de choses.
Le post qui contient le programme a été modifié lui aussi. Il faut que tu récupères le programme entier ci-dessus.

Si ça ne fonctionne pas, indiques le message d'erreur.
A plus.

Hors ligne