กำลังส่ง multipart / ทางเลือกด้วย mutt


12

ฉันต้องการตัวเลือกสำหรับอีเมลและ / หรือผู้รับที่จะมีการเรียกใช้สคริปต์ก่อนที่จะส่ง (ไม่ว่าจะโดยอัตโนมัติหรือโดยการกดปุ่มลัดก) ซึ่งจะใช้เวลาของฉันtext/plainวิ่งสคริปต์มากกว่านั้นแล้วยึดติดการส่งออกของสคริปต์ที่ที่มีtext/htmlประเภท multipart/alternativeการตั้งค่าข้อความทั้งหมดเพื่อ

การเดินเล่นทางด้านข้าง: มันอาจจะดีถ้าสิ่งนี้เกิดขึ้นโดยอัตโนมัติทันทีก่อนที่จะส่ง แต่ถ้าประเภทของร่างกายถูกตั้งค่าtext/markdownเป็นเพราะนี่จะหมายถึงอีเมลที่ค้างอยู่ไม่เคยอยู่ในสถานะที่ฉันแก้ไขแหล่งข้อมูลอีกครั้ง แต่ลืมสร้าง HTML ใหม่ text/plainและฉันยังคงมีตัวเลือกในการส่งเท่านั้น จากนั้นฉันก็มีข้อผูกพันอีกอย่างหนึ่งในการตั้งค่าประเภทเนื้อหาของเนื้อหาtext/markdownเพื่อที่จะได้รับสิ่งนี้ แต่แล้วฉันก็มีปัญหาที่ไคลเอนต์อีเมลจำนวนมาก (รวม Gmail) ปฏิเสธที่จะแสดงผลtext/markdown(แม้จะเป็นข้อความธรรมดา) แทนที่จะเสนอเป็นการดาวน์โหลดดังนั้นฉันจึงต้องเปลี่ยนประเภทเนื้อหาของส่วนที่มากลับ text/plainไปยัง

สิ่งที่เป็นไปได้ด้วย mutt?

น่าเศร้าเท่าที่ฉันสามารถบอกได้ว่า mutt ไม่สนับสนุนการส่งmultipart/alternativeข้อความปฏิเสธที่จะส่งอะไร แต่multipart/mixedแต่ฉันชอบที่จะแสดงให้เห็นว่าฉันผิด

ทางออกที่ดีที่สุดที่ฉันสามารถทำได้คือแมโครนี้:

macro compose M "<filter-entry>commonmark<return>y<edit-type><kill-line>text/html<return>" "convert message to HTML with Commonmark"

มีปัญหาเล็กน้อยเกี่ยวกับเรื่องนี้:

  • มันแทนที่ข้อความล้วนดั้งเดิมทั้งหมดดังนั้นจึงยากที่จะแก้ไข
  • ฉันไม่ชอบที่มีyมาโครในการตอบตกลงกับกล่องโต้ตอบถามว่าการเขียนทับไฟล์นั้นไม่เป็นไรหรือไม่
  • ฉันต้องกดย้อนกลับหลังจากทำงานนี้
  • และที่สำคัญคือไม่ส่งข้อความธรรมดาแทน

มีวิธีแก้ปัญหาที่ดีกว่านี้ไหม?

ฉันอาจเปิดไปยังโปรแกรมรับส่งเมลแบบข้อความอื่นได้ตราบใด

  • สามารถใช้งานได้กับ Google Apps และซิงค์ธง ฯลฯ ทั้งสองทิศทาง
  • รองรับ GPG
  • มีการเชื่อมโยงเหมือนเป็นกลุ่มหรือฉันสามารถกำหนดค่าพวกเขา
  • ให้ฉันใช้เสียงเรียกเข้าเป็นเครื่องมือแก้ไขข้อความ
  • มีมุมมองข้อความแบบเธรด
  • อนุญาตให้ฉันกรอง / ค้นหาอีเมลด้วยวิธีที่ค่อนข้างซับซ้อน (ผู้ส่งผู้รับการแสดงตนของสิ่งที่แนบมาการค้นหาหัวเรื่องและเนื้อหาของข้อความ)
  • จัดการกับสิ่งที่แนบประเภทบิตเช่น mutt, เช่น mailcap หรือเทียบเท่าเพื่อให้ฉันสามารถเรียกใช้อีเมลขาเข้า HTML ผ่าน lynx หรือกดสิ่งที่จะเปิดในเบราว์เซอร์กราฟิกถ้าจำเป็นฉันสามารถเปิดดูภาพที่กดปุ่มและอื่น ๆ

คำตอบ:


1

ฉันลืมเกี่ยวกับ NeoMutt รองรับหลายส่วน https://neomutt.org/guide/mimesupport


ดีใจที่ได้ยินแบบนั้น. หน้าเว็บที่คุณเชื่อมโยงกล่าวว่าการสนับสนุนการส่งหลายส่วน / ทางเลือกนั้นเป็นพื้นฐาน แต่ฉันจะลองอีกครั้งในไม่ช้า ขอบคุณที่ชี้นำ
tremby

Neomutt ควรจะเป็นแบบหล่นในการแทนที่สำหรับ ol 'mutt ปกติ สิ่งที่ดีอีกอย่างก็คือมันมีพัฒนาการที่ค่อนข้างใหญ่
ดาวี่

ดูเหมือนว่าคุณสมบัติจะถูกเพิ่มเมื่อหนึ่งปีที่ผ่านมา: github.com/neomutt/neomutt/pull/734
tremby

มันใช้งานได้ดี ฉันทำมาโครคล้ายกับที่แนะนำในเอกสารที่คุณโพสต์ที่neomutt.org/guide/ ...... - ฉันยังต้องกด Enter หลังจากใช้แมโครและฉันยังไม่แน่ใจว่าจะเกิดอะไรขึ้นถ้าฉันต้องการทำ การเปลี่ยนแปลงหลังจากการสร้างทางเลือก แต่ก่อนที่จะส่ง แต่ฉันจะคิดออกทั้งหมดในหลักสูตรที่เหมาะสม หมายเหตุรุ่นแรกที่รองรับหลายส่วน / ทางเลือกคือรุ่น 2018-05-12 ซึ่งยังไม่อยู่ใน distro ของฉัน --gnutls --prefix/usr/local --tokyocabinetผมรวบรวมมาจากแหล่งที่มาด้วย
tremby

-1
    #!/bin/bash

    cp $1 $1.tmp
    ##CHANGE OVERALL TYPE IN HEADER TO MULTIPART

    #HANDLE CONTENT-TYPE LINE IN HEADER
    if grep -q "Content-Type:" $1; then
            sed -i -e 's/Content-Type:.*?;/Content-Type: multipart\/alternative; boundary=boundary42/' $1.tmp
    else
            sed -i '1iContent-Type: multipart/alternative; boundary=boundary42' $1.tmp
    fi

    #EXTRACT HEADER AND BODY
    header="$(sed '/^$/q' $1.tmp)"
    body="$(sed -n -e '/^$/,$p' $1.tmp | tail -n +2)"

    #CREATE HTML VERSION
    HTMLbody="$(echo "$body" | commonmark)"

    #ADD HEADER
    echo "$header" > $1

    #START PLAIN TEXT
    echo -e "\n--boundary42\n" >> $1
    echo -e "Content-Type: text/plain; charset=us-ascii\n" >> $1
    echo "$body" >> $1

    #START HTML
    echo -e "\n--boundary42\n" >> $1
    echo "Content-Type: text/html; charset=UTF-8" >> $1
    echo "Content-Transfer-Encoding: quoted-printable\n" >> $1
    echo "$HTMLbody" >> $1

    echo -e "\n--boundary42--" >> $1

    msmtp $1

ดูเหมือนว่าคุณจะตอบคำถาม "เป็นไปได้ที่จะใช้ลายเซ็นที่แตกต่างกันต่อ" จาก "ที่อยู่อีเมล" ซึ่งไม่ใช่คำถามที่ฉันถาม ฉันไม่เห็นความช่วยเหลือในการส่งอีเมลหลายส่วน / ทางเลือก
tremby

ฉันเห็นคุณแก้ไขคำตอบของคุณแล้ว ตกลงเพื่อตรวจสอบที่อยู่อีเมลที่คุณส่งจากและไปที่ (ดูไม่เหมือนที่คุณทำอะไรกับ "จาก") และอาจเพิ่มส่วนหัวบางส่วน แต่ฉันก็ยังไม่เห็นว่าจะช่วยได้อย่างไรในการส่งอีเมลหลายส่วน / ทางเลือก
tremby

คุณอาจจะต้องปรับมันสำหรับความต้องการของคุณเองดังนั้นฉันอาจไม่สามารถสะกดทุกอย่างให้คุณ แต่โซลูชันทั่วไปคือคุณตั้งค่าตัวแก้ไขเป็นสคริปต์ที่เรียกใช้ตัวแก้ไขของคุณจากนั้นแยกวิเคราะห์ไฟล์แบบร่าง
ดาวี่

การแก้ไขเฉพาะไฟล์ร่างใดที่จะอนุญาตให้ mutt ส่งหลายส่วน / ทางเลือก ไฟล์ทั้งสองรุ่นอยู่ที่ไหน HTML และข้อความธรรมดา?
tremby

คุณดูเหมือนจะมีวิธีการแปลงด้วย Commonmark แทนที่ด้วยบรรทัด someMultipartScript $ 1 ณ จุดนั้นจะเป็นข้อความธรรมดา ส่งผ่านเครื่องมือการแปลงของคุณที่นั่นแล้วส่งไปที่ชื่อไฟล์เดียวกัน $ 1 เมื่อสคริปต์นี้หยุดทำงานมันจะส่งสัญญาณไปยังโปรแกรมที่เรียกใช้ (mutt) ว่าตัวแก้ไขของคุณถูกปิดซึ่ง ณ จุดนั้นควรพร้อมที่จะส่ง
ดาวี่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.