Mail ne réexpédie pas les pièces jointes

pas cnrv

Membre actif
30 Janvier 2008
605
11
d'ici....et là
Bonjour,
J'ai un compte mail destiné à recevoir les messages de mon répondeur téléphonique de ligne fixe.
Ainsi lorsque qq appelle et laisse un message j'ai un mail avec une pièce jointe, un fichier mp3 du message laissé par l'appelant. Pratique.

J'ai également une règle de messagerie qui consiste à réception d'un mail "répondeur téléphonique" d'en faire une ré-expédition sur une autre adresse mail.

Le problème est que le mail est ré-expédié mais sans la pièce jointe, le fichier mp3.

Le plus étrange, est que si j'effectue la ré-expédition manuellement il n'y a pas de problème.

Comment résoudre le problème?
 
Bonsoir,

j'ai une solution à base d'Applescript, si ça t'intéresse.

Bon fonctionnement vérifié.
 
Bonjour,
Merci de cette proposition.
Je suis preneur.

reste que je ne parviens pas à comprendre pourquoi la PJ n'est pas réexpédiée via la règle de messagerie.
Or la règle de messagerie c'est également une forme de script (interne à Mail).
Je peux toujours essayer avec ta solution Applescript
 
Bonjour,

si tu as fait une recherche, tu as pu constater que Mail ne fait pas suivre les pièces jointes dans les réexpédiés, c'est comme ça...

Pour la solution que je te propose, il faut utiliser le script ci-joint comme suit :

1. rend la Bibliothèque de l'utilisateur (~/Bibliothèque) visible : dans le Terminal, exécute : chflags nohidden Library

2. ouvre l'éditeur de script
- copie-colle le script dedans
- remplace "adresse mail ici" par l'adresse à laquelle tu veux réexpédier le mail (conserve les guillemets)
- compile le script
- fais "Fichier / Exporter", nomme le script ("Exporter comme : "répondeur", par exemple), enregistre-le dans :
~/Bibliothèque/Applications Scripts/com.apple.mail

NB : j'ai attribué au message réexpédié l'objet "message répondeur", mais tu peux modifier ça dans le script si besoin (Set theSubject to )

3. Ensuite il te faut :
- l'adresse mail de l'expéditeur du message que tu veux réexpédier (celui expédié par le répondeur)
- l'objet de ce mail

4. Dans Mail, crée une règle ainsi :
- description : "répondeur" (par exemple)
- Si Toutes les conditions suivantes sont remplies :
- "De" contient : adresse mail de l'expéditeur du message que tu veux réexpédier (celui expédié par le répondeur)
- "Objet" contient : objet du mail
Ces 2 conditions garantissent que la règle va s'appliquer au message reçu du répondeur, mais pas au message réexpédié.
- Effectuer les opérations suivantes : Exécuter Applescript : sélectionne "répondeur"

5. si après test tout est ok, remasquer la Bibliothèque : chflags hidden Library

Le script provient d'un site et commence par un "copyright".
Je te laisse décider si ça doit en restreindre l'utilisation ou nécessiter de contacter son auteur.

Le script provient de : http://stackoverflow.com/questions/18851584/applescript-to-forward-mail-with-attachments

Bloc de code:
#copyright Mark Hunte 2013
--using terms from application "Mail"
--on perform mail action with messages theMessages for rule theRule


-- set up the attachment folder path

set folderName to "temp"
set homePath to (path to temporary items from user domain) as text

set attachmentsFolder to (homePath & folderName) as text


tell application "Mail"
    set theMessages to (get selection)
    repeat with eachMessage in theMessages
        delay 0.5

        -- set up the folder name for this mail message's attachments. We use the time stamp of the  date received time stamp

        set timeStamp to (do shell script "date +%Y_%m_%d_%H%M%S")

        set attachCount to count of (mail attachments of eachMessage)
        if attachCount is not equal to 0 then
            -- use the unix /bin/test command to test if the timeStamp folder  exists. if not then create it and any intermediate directories as required
            if (do shell script "/bin/test -e " & quoted form of ((POSIX path of attachmentsFolder) & "/" & timeStamp) & " ; echo $?") is "1" then
                -- 1 is false
                do shell script "/bin/mkdir -p " & quoted form of ((POSIX path of attachmentsFolder) & "/" & timeStamp)
  
            end if
            set attachList to {}
            try
                -- Save the attachment
  
                #SET replaceBadCharsWithUnderscoreInFileNames  TO TRUE  IF YOU WANT BAD CHARACTERS REMOVED FROM THE FILE NAMES THAT MAY STOP THE FILES SAVING DOWN
                set replaceBadCharsWithUnderscoreInFileNames to true
                ####
  
                repeat with theAttachment in eachMessage's mail attachments
                    if replaceBadCharsWithUnderscoreInFileNames then
                        set originalName to my replaceBadChars((name of theAttachment as string))
          
                    else
                        set originalName to (name of theAttachment as string)
          
                    end if
      
      
      
                    set savePath to attachmentsFolder & ":" & timeStamp & ":" & originalName
                    try
                        save theAttachment in file (savePath)
                        copy (savePath) to end of attachList
                    end try
                end repeat
  
                --on error msg
                --display dialog msg
            end try
            set theSubject to "message répondeur"
            set theBody to ""
            set theAddress to "adresse mail ici"

            set visable to true

            set theForwardedMessage to make new outgoing message with properties {subject:theSubject, content:theBody & return & return}
            tell theForwardedMessage
                set visible to true
                make new to recipient at end of to recipients with properties {address:theAddress} without quote original message
  
                tell content
                    repeat with i from 1 to the count of attachList
                        set this_file to (item i of attachList as alias)
          
                        make new attachment with properties {file name:this_file} at after the last paragraph
          
                        send theForwardedMessage
                    end repeat
      
                end tell
  
            end tell



        end if
        delay 0.5
    end repeat

end tell
--end perform mail action with messages
--end using terms from
on replaceBadChars(TEXT_)
    --log TEXT_
    set OkChars to {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "_", ".", "(", ")", "-", ",", space}
    set TEXT_ to characters of TEXT_
    repeat with i from 1 to number of items in TEXT_
        set this_char to item i of TEXT_
        if this_char is not in OkChars then
            set item i of TEXT_ to "_"
        else

        end if
    end repeat
    set TEXT_ to TEXT_ as string

    do shell script " echo " & quoted form of TEXT_
end replaceBadChars
 
Dernière édition:
Dis-donc, pas cnrv, j'viens de penser à un truc :

Ta règle d'envoi d'une copie vers une autre adresse mail, as-tu essayé de la faire sur le webmail, plutôt que dans Mail ?

Parce que je viens de tester chez Orange, ça marche nickel :)

J'ai créé une règle basée sur l'expéditeur et l'objet, qui "envoie une copie vers une autre adresse mail" (qui n'est pas Orange, en l'occurence).

J'envoie un mail avec un mp3 joint vers l'adresse Orange, et dans les secondes qui suivent je reçois la copie avec le mp3 sur l'autre compte mail.
 
Dernière édition:
si tu as fait une recherche, tu as pu constater que Mail ne fait pas suivre les pièces jointes dans les réexpédiés, c'est comme ça...

Bonjour,
Ben non, justement.
Des fois la PJ est bien renvoyée, des fois elle ne l'est pas. Et je ne suis pas parvenu à déterminer si cela était lié ou non au poids du fichier en PJ.
Moralement, le fait qu'il y ait un copyright sur ce script me gène. Et tout autant moralement je considère qu'au prix où Apple se gausse de vendre son matériel, et se vante à chaque nouvel OS des nouveautés (la plupart consistant à supprimer des trucs qui fonctionnaient parfaitement bien dans l'OS précédent), il n'est pas logique de devoir encore rétribuer qq'un pour pallier les carences d'Apple.

Je renonce donc à faire usage de ce script.

J'ai recherché chez le fournisseur de téléphonie, et le support client m'a expliqué qu'une solution est possible....elle était juste "un peu" cachée. Solution consistant à ajouter d'autres adresses mail destinatrices du message laissé sur le répondeur. Solution mise en place hier soir, et ça marche.

En tous cas merci de vos remarques et contributions; ce qui n'ôte rien à ma déception sur les soit disant progrès d'Apple.