Portál AbcLinuxu, 13. května 2025 20:07

Dotaz: Mutt template - Subject

30.1.2005 21:26 © | skóre: 37 | blog: escaped
Mutt template - Subject
Přečteno: 316×
Odpovědět | Admin
Ahoj všem.

Už se tu nějakou chvíli mořim s problémem, jak vnutit Muttu template, ve kterém bude definován i Subject zprávy. Nedaří se mi...
unmy_hdr *
.
.
.
my_hdr Subject: "nejaky muj subject"
prostě nefunguje, nechápu proč, vždyť From, To, Cc, Bcc apod. takhle nadefinuju úplně v pohodě.

Víte někdo jak na to?

Podobný problém je s vložením těla zprávy, ale to jsem již vyřešil přes nastavení "editor", kde provedu (pro Vim) "+':r /path/to/nejaky_body.template'"...

Ale s tím subjectem se opravdu nevím rady :-( Zkoušel jsem pro editor nastavit "+':%s/Subject:/Subject: text'", ale to zase zkolabuje Vim :-( a tvrdi mi, ze je to neplatny prikaz (asi proto, že v prostředí Muttu je "%s" interpretováno jako vstup pro ten nastavenej editor, pokusy s dosazením zpětných lomítek před "%" taktéž selhalo).

A teď babo raď :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.1.2005 21:46 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle mi funguje:
$ cat tmp/muttrc 
unmy_hdr *
my_hdr Subject: ahoj svete
set edit_headers=yes
set editor="vim '+:%%s/Subject:/Subject: text/'"
#                  ^^
$ mutt -F tmp/muttrc
Ale my_hdr Subject: ... nemění subject v odpovědi a nemá vliv na zprávu matchlou v reply nebo send hooku (má vliv až na další).
30.1.2005 22:09 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Tak jsem to vyzkousel a:
Error detected while processing command line:
E492: Not an editor command: :%%s/Subject:/Subject: text/
30.1.2005 22:24 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Ještě doplním verze obou programů:
Mutt 1.4.2.1i (2004-02-12)
VIM - Vi IMproved 6.3 (2004 June 7, compiled Jan 11 2005 02:52:41)
31.1.2005 11:54 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
Mutt 1.5.6i

Řada 1.4 je přes dva roky stará (1.4.1 a 1.4.2 byly AFAIK jen bezpečnostní opravy) a Mutt 1.5.x mi zatím ani jednou nespadl.
31.1.2005 12:36 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Mě taky ještě ani jednou nespadl. :-) Problém teda bude, myslíš, v tom, že moje verze Muttu nesprávně nakládá s "%%". Protože: když tam dám "%%s", tak tomu Vimu předhodí "%%s" namísto "%s" a když tam dám jen "%s", tak je myslím jasné, co se stane. ;-) Ok, zkusím novější verzi Muttu a napíšu, jak to dopadlo.
31.1.2005 12:41 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
No jo! Jenže:

"The current stable public release version is 1.4.2.1."

Tak teda nevím, nevím jestli chci 1.5.x, navíc není tarball a zdá se, že ani žádnej patch proti 1.4.x. :-( Tos tahal z CVS?
31.1.2005 12:45 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Aha, už jsem to našel. Omlouvám se za zmatky. No, ale stejně je to developement version, tak nevím... Ale co! Zkusím a uvidí se :-D
31.1.2005 13:59 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Odpovědět | | Sbalit | Link | Blokovat | Admin
Problém je vyřešen následujícím postupem:

1) Mutt upgradujeme na verzi > 1.4.x, tj. 1.5.x (1.5.7i)

2) Vytvoříme si někde tělo zprávy, např. v ~/.mutt/templates/nazev.tem

3) V závislosti na našem nastavení Muttu si vytvoříme třeba takovýto profil (pravděpodobně funguje jen mě, berte to jen jako vodítko):
---cut---
set signature="~/.mutt/signatures/normal.sig"

set editor="vim -c 'startinsert' \
            +':set textwidth=76' \
            +':set nu!' \
            +':%%s/^Subject:.*$/Subject: Text našeho subjectu/' \
            +'/Reply-To:.*$' \
            +':r ~/.mutt/templates/nazev.tem' \
            +':10' %s"

unmy_hdr *

my_hdr From: "Moje jméno" <moje_adresa>
my_hdr To: "Komu to bude" <recipient_adresa>
my_hdr Cc: "Carbon Copy pro" <carbon_adresa>
my_hdr Reply-To: "Kam půjde odpověď" <reply_adresa>
---cut---
U mě uvedené způsobí, že se sestaví takovýto E-mail:
From: Moje jméno <moje_adresa>
To: Komu to bude <recipient_adresa>
Cc: Carbon Copy pro <carbon_adresa>
Bcc: 
Subject: Text našeho subjectu
Reply-To: Kam půjde odpověď <reply_adresa>

zde bude tělo zprávy z ~/.mutt/templates/nazev.tem

-- 
zde bude signatura z ~/.mutt/signatures/normal.sig
Vim zároveň naskočí v Insert módu a kurzor je na pozici začátku těla zprávy. Upozorňuji znovu, že toto řešení pravděpodobně nikomu nebude a ani nemůže fungovat! Je to fakticky jen na ukázku že to jde a funguje. V konkrétní konfiguraci Muttu je nutno postupovat dle dané konfigurace jinak. Nějaké univerzální řešení bychom takovýmto způsobem hledali asi jen stěží. Napadá mě ještě jedna možnost, ale zatím jsem ji netestoval. Uvedený způsob mi totiž přijde příliž složitý a skoro neschůdný.
31.1.2005 18:28 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
No vida (i když fakt nevím, k čemu to je ;-)).

Jinak :set něco věci by šly hodit do ~/.vim/ftplugin/mail.vim, ostatní věci (:r, :s///) budou dělat neplechu, když ten mail budeš editovat dvakrát -- to by je pak chtělo přesunout do konfigurace vimu a tam nějak testovat, co je nový mail a co ne.

PS: Právě proto, že je to vývojová verze, jsem psal, že mi nepadá.
31.1.2005 22:19 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
PS: Právě proto, že je to vývojová verze, jsem psal, že mi nepadá.
Aha :-) Tak se omlouvám...

No, k celé problematice můžu říci jediné. Mutt je naprosto nejlepší MUA, se kterým jsem měl tu čest se seznámit (ještě jsem zkoušel Sylpheed-Claws, a kdysi dávno Pine). Naučil jsem používat Mutt i moji slečnu. Jenže moje slečna potřebuje během večera poslat třeba několik e-mailů se stejným textem, ale jinou přílohou (já to taky potřebuju, ale jen 1x do týdne). Proto to řeším. Napadlo mě, že by se pomoci +":r soubor" mohl načítat úplně celej mail, prostě jakási šablona i s hlavičkou, ale nevím, jak Muttu zakázat, aby mi do takto sestavovaného mailu přidával vlastní hlavičku (navzdory unmy_hdr * stejně přidává prázdnou hlavičku). Jak mu to teda říct, že nechci, aby vytvářel hlavičku? Určitě to nějak půjde. To by totiž problém úplně vyřešilo a bylo by to i jednoduché a schůdné na implementaci i pro mojí slečnu. Takhle je bohužel odkázána na moje šílený triky v Muttu a Vimu, jak jsem předvedl shora. ;-) Než se to naučí, rád bych pro ni měl jednoduché řešení (a pro sebe vlastně taky)...
31.1.2005 22:37 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
A nešlo by to neinteraktivně?
#!/bin/sh
FROM=odesilatel
TO="seznam adresatu"
CC="seznam cc adresatu"
SUBJECT="predmet"
TEXT=/soubor/s/textem

CC="-c ${CC// / -c }"
MAIL="$FROM"
for f in "$@"; do
    mutt -a "$f" -s "$SUBJECT" $CC $TO <"$TEXT"
done
Jinak ten tvůj postup bude fungovat, ale tu zprávu je potřeba napsat najednou, protože když se vim spustí podruhé, tak znova nahradí řádku se Subjectem a načte template.
31.1.2005 22:43 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
Na začátku by mělo být #!/bin/bash, když tam používám takový "bashismus"...
1.2.2005 00:55 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Jo tohle samosebou bude fungovat, ale neni to "uvnitr" Muttu. :-) Stejne ale moc dik za snahu.

Je to zvlastni, ale treba v jednom podniku, ve kterem pracuje jeden znamy se posilaji desitky "prednapsanych" zprav. Safra, to by v tom byl cert, aby to v Muttu neslo taky, kdyz to umi kde co... ;-)
31.1.2005 22:49 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Mutt template - Subject
Ad navzdory unmy_hdr * stejně přidává prázdnou hlavičku -- zas tolik do Muttu nevidím, ale unmy_hdr jenom zruší efekt předchozích nastavení my_hdr, tj. uživatelem definovaných hlaviček. Pokud bys zrušil všechny automaticky generované hlavičky, nemohl bys např. poslat mail s MIME přílohou.
1.2.2005 00:52 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Ale prilohu prece vkladam az pote, co opustim Vim... jde mi o tohle: jsem v Muttu, na nejakou klavesu mam namapovano, ze chci poslat template, stisknu klavesu, otevre se normalne Vim s templatem pomoci +':r template.txt' (a Mutt do toho nic neprida, coz je prave to, na co nemuzu prijit), [ESC]:wq, a jsem v takovym tom Mutt menu, kde si vyberu, jestli chci zpravu podepsat GPG apod., pridat prilohu atd... Neni potreba, aby Mutt neco pridaval do toho "editoru" v pripade, ze uvazujeme takto, protoze vse potrebne si pridam do zpravy az pote, co ukoncim editaci ve Vimu (vlastne v pripade templatu by bylo nejlepsi Vim vubec nespoustet a rovnou vlezt do toho odesilaciho menu Muttu). Otazkou je, jak toto zaridit "zevnitr" Muttu, tj. ne z prikazove radky spustenim Muttu s parametry atd.
11.6.2005 03:20 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: Mutt template - Subject
Odpovědět | | Sbalit | Link | Blokovat | Admin
macro index \cT ":set editor=\"vim +'<esc>/^$' +':r /cesta/k/telu'\"<enter><forward>:set editor=default\n"
Třeba taky šikovnej způsob jak mezi hlavičku a podpis narvat šablonku pro tělo. Místo <forward> lze psát třeba <reply> atd. Předpokládá to ovšem, že píšete ve Vimu, to je jediný nedostatek. Ovšem vložit něco do souboru by snad měl umět každej pořádnej editor...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.