Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 463
    Points
    8 463

    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,

  2. #2
    Expert Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 748
    Points : 7 160
    Points
    7 160

    Par défaut

    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

  3. #3
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 463
    Points
    8 463

    Par défaut

    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 )

  4. #4
    Expert Confirmé
    Avatar de fred1599
    Homme Profil pro Fred
    Enseignant
    Inscrit en
    juillet 2006
    Messages
    1 731
    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 731
    Points : 2 598
    Points
    2 598

    Par défaut

    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)

  5. #5
    Expert Confirmé
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 185
    Points : 3 724
    Points
    3 724

    Par défaut

    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

  6. #6
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 712
    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 712
    Points : 3 899
    Points
    3 899

    Par défaut

    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.

  7. #7
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 463
    Points
    8 463

    Par défaut

    Merci pour ces pistes.

    Je vais faire cette semaine des tests avec ces divers éléments.

  8. #8
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 463
    Points
    8 463

    Par défaut

    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.

  9. #9
    Expert Confirmé Sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2002
    Messages
    1 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 463
    Points
    8 463

    Par défaut

    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)

  10. #10
    Expert Confirmé
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 185
    Points : 3 724
    Points
    3 724

    Par défaut

    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

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •