Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Réseau/Web
Réseau/Web Forum d'entraide sur Python et le réseau/Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/10/2012, 12h57   #1
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Par défaut Pièce jointe envoyée par mail généré par python non visible sur iphone

Bonjour,

J'envoie des mails automatiques en python qui contiennent des pièces jointes.
Quand je lis le mail sur outlook, un webmail, aucun souci, j'ai bien le mail et la pièce jointe.
Quand je le lis directement sur le compte mail depuis un iphone, ipad ou mac, il m'affiche bien la présence d'une pièce jointe mais celle-ci reste non visible.

Le problème est donc à priori spécifique à apple...

Pour géré mes pièce jointes, j'utilise une fonction classique :

Code python :
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
def FICHIER( chemin ):
    """Guess the content type based on the file's extension. Encoding
    will be ignored, altough we should check for simple things like
    gzip'd or compressed files."""
 
    ctype, encoding = mimetypes.guess_type(chemin)
 
    if ctype is None or encoding is not None:
        # No guess could be made, or the file is encoded (compresses), so
        # use a generic bag-of-bits type.
        ctype = 'application.octet-stream'
    maintype, subtype = ctype.split('/', 1)
 
    if maintype == 'text':
        fp = open(chemin)
        # Note : we should handle calculating the charset
        msg = MIMEText(fp.read(), _subtype=subtype)
        fp.close()
    elif maintype == 'image':
        fp = open(chemin, 'rb')
        msg = MIMEImage(fp.read(), _subtype=subtype)
        fp.close()
    elif maintype == 'audio':
        fp = open(chemin, 'rb')
        msg = MIMEAudio(fp.read(), _subtype=subtype)
        fp.close()
    elif maintype != None and subtype != None:
        fp = open(chemin, 'rb')
        msg = MIMEBase(maintype, subtype)
        msg.set_payload(fp.read())
        fp.close()
        # Encode the payload using Base64
        Encoders.encode_base64(msg)
    else:
        fp = open(chemin, 'rb')
	msg = MIMEBase('application', "octet-stream")
        msg.set_payload(fp.read())
        fp.close()
        # Encode the payload using Base64
        Encoders.encode_base64(msg)	
    # Set the filename parameter
    fichier = os.path.basename(chemin)
    msg.add_header('Content-Disposition','attachment',filename=fichier)
    return msg

et pour ajouter le fichier dans mon mail :
Code python :
1
2
3
4
 
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = u"Envoie de mail avec pièce jointe"
msgRoot.attach(FICHIER('monfichier.pdf'))

Est-ce que quelqu'un aurait une idée ?
Merci d'avance,
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 13h28   #2
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 693
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 693
Points : 4 521
Points : 4 521
Salut,
Ca semble être plus côté iPhone que dans la construction des attachements côté expéditeur (Python).
Avez vous les mêmes soucis avec des pièces jointes expédiés par Outlook ou gmail?
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 14h22   #3
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Non, je n'ai aucun souci quand j'envoie un mail par outlook/thunderbird ou un webmail.
La réception des mails sur d'autres smartphones fonctionnent aussi très bien.
Quand je le lis en passant par un client web sur un iphone, il n'y a également aucun souci. Le problème est uniquement par l'application intégrée à l'iphone gérant les mails (et je pense à tous les produits apple (problème rencontré sur ipad et mac également) (le problème est que beaucoup utilise cette solution )
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 21h59   #4
fred1599
Membre Expert
 
Avatar de fred1599
 
Homme Fred
Enseignant
Inscription : juillet 2006
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juillet 2006
Messages : 1 306
Points : 1 799
Points : 1 799
Bonsoir,

Avez-vous essayé ce snippet afin de vérifier s'il ne fonctionnerait pas avec votre configuration?
__________________
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
fred1599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2012, 11h13   #5
tyrtamos
Expert Confirmé
 
Avatar de tyrtamos
 
Inscription : décembre 2007
Messages : 1 767
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 767
Points : 3 035
Points : 3 035
Bonjour,

J'ai créé une bibliothèque pour envoyer des emails (http://python.jpvweb.com/mesrecettes...xpedition_mail) en texte ou en html, avec ou sans pièce jointe.

Je l'utilise dans un logiciel d'envoi des emails en masse (que je ne diffuse pas pour ne pas qu'on s'en serve pour envoyer des spams). Et j'envoie grâce à ce logiciel plusieurs centaines d'emails avec pièces jointes dans le cadre d'un concours annuel, et ceci dans le monde entier (plus de 40 pays).

Je suppose donc qu'il y a quelques Mac dans le tas, et je n'ai pas encore eu ce genre de retour. Peut-être pourrais-tu essayer? Et ton résultat m'intéresse!
__________________
Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
Mes recettes python: http://www.jpvweb.com
tyrtamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2012, 11h45   #6
PauseKawa
Expert Confirmé
 
Avatar de PauseKawa
 
Homme Patrice BLANGARIN
Technicien Help Desk, maintenance, réseau, système et +
Inscription : juin 2006
Messages : 2 608
Détails du profil
Informations personnelles :
Nom : Homme Patrice BLANGARIN
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien Help Desk, maintenance, réseau, système et +
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2006
Messages : 2 608
Points : 3 715
Points : 3 715
Bonjour,

Citation:
Envoyé par Guigui_ Voir le message
Quand je lis le mail sur outlook, un webmail, aucun souci, j'ai bien le mail et la pièce jointe.
Quand je le lis directement sur le compte mail depuis un iphone, ipad ou mac, il m'affiche bien la présence d'une pièce jointe mais celle-ci reste non visible.
Je ne connais pas la partie MAC mais deux petites questions:
La pièce jointe est elle visible dans le source du message ? (pj intégrée au mail et non vraiment en pj: pb de config)
La taille du mail correspond elle à celle d'un mail + pj ? (La pj reste sur le serveur)

@+
__________________
Merci d'utiliser le forum pour les questions techniques.
PauseKawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2012, 11h37   #7
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Merci pour ces pistes.

Je vais faire cette semaine des tests avec ces divers éléments.
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2012, 13h26   #8
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Après mes premiers tests et comparaison avec le code de Tyrtamos, le problème venait de la façon dont je créais mon mail. J'utilisais ce code:

Code :
msgRoot = MIMEMultipart('related')
alors qu'il fallait utiliser
Code :
msgRoot = MIMEMultipart('alternatives')
Sur IPhone, j'ai bien maintenant mon fichier en pièce jointe. Sur IPad, avec le code de Tyrtamos, je l'ai en pièce jointe, avec mon code, je l'ai directement intégré au message (mais possibilité de récupérer tout de même le fichier). Il me reste donc à clarifier ceci.
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2012, 19h51   #9
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Finalement, ta fonction, tyrtamos, me plaît bien . Elle est facile à utiliser et très propre. J'ai plus qu'à la compléter à ma sauce

Il me reste à faire quelques tests sur les encodages car j'ai remarqué ceci :
Quand dans mon envoie de mail, je ne spécifie pas l'expéditeur, il n'arrive pas sur outlook à lire le sujet du mail avec le bon encodage (j'utilise de l'utf8) alors que quand l'utilisateur est spécifié, je récupère le sujet du mail proprement.
(aucun souci avec le corps du mail qui est en html)
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 09h02   #10
tyrtamos
Expert Confirmé
 
Avatar de tyrtamos
 
Inscription : décembre 2007
Messages : 1 767
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 767
Points : 3 035
Points : 3 035
Bonjour,

Ravi que ma bibliothèque te rende service! Je dois dire que j'ai eu du mal à l'écrire à cause du manque de notice et d'exemples: j'ai dû consulter une bonne centaine de sites web sur le sujet, chacun m'apportant des petits morceaux...

Surtout, si tu trouves des améliorations: n'hésite pas à les donner!
__________________
Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
Mes recettes python: http://www.jpvweb.com
tyrtamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web