Gửi nhiều phần / thay thế với mutt


12

Tôi muốn tùy chọn cho một số email và / hoặc người nhận nhất định chạy tập lệnh trước khi gửi (cho dù là tự động hay bằng cách nhấn phím), tôi sẽ text/plainchạy tập lệnh qua tập lệnh đó và sau đó gắn đầu ra của tập lệnh đó với text/htmlloại , đặt toàn bộ tin nhắn thành multipart/alternative.

Lan man bên lề: Có thể tốt nếu điều này xảy ra tự động ngay lập tức trước khi gửi nhưng chỉ khi loại cơ thể hiện được đặt thành text/markdown, vì điều này có nghĩa là email đang chờ xử lý sẽ không bao giờ ở trạng thái tôi chỉnh sửa lại nguồn mà quên tạo lại HTML, và tôi vẫn có tùy chọn chỉ gửi text/plain. Sau đó, tôi có một ràng buộc khác để đặt loại nội dung của cơ thể text/markdown, để nó sẽ được chọn. Nhưng sau đó tôi cũng gặp phải vấn đề là rất nhiều ứng dụng thư khách (bao gồm cả Gmail) từ chối hiển thị text/markdown(ngay cả dưới dạng văn bản thuần túy), thay vào đó cung cấp dưới dạng tải xuống, vì vậy tôi cần phải chuyển loại nội dung của phần nguồn để text/plain.

Là một điều như vậy có thể với mutt?

Đáng buồn thay, theo như tôi có thể nói với mutt không hỗ trợ gửi multipart/alternativetin nhắn, từ chối gửi bất cứ thứ gì multipart/mixed, nhưng tôi rất muốn được hiển thị rằng tôi đã sai.

Giải pháp tốt nhất tôi có thể đưa ra là macro này:

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

Có một vài vấn đề với điều này:

  • Nó hoàn toàn thay thế văn bản gốc ban đầu, do đó khó chỉnh sửa hơn nhiều
  • Tôi không thích điều đó có ytrong macro để nói đồng ý với hộp thoại hỏi liệu có ổn không khi ghi đè tệp
  • Tôi phải nhấn return sau khi chạy
  • Và tất nhiên, điều chính: nó không gửi văn bản thay thế

Có một giải pháp tốt hơn?

Tôi có khả năng mở cho một ứng dụng thư chế độ văn bản khác, miễn là nó

  • có thể sử dụng với Google Apps và đồng bộ hóa cờ vv theo cả hai hướng
  • hỗ trợ GPG
  • có các ràng buộc giống như vim, hoặc tôi có thể cấu hình chúng
  • cho phép tôi sử dụng vim làm trình chỉnh sửa tin nhắn
  • có chế độ xem tin nhắn theo luồng
  • cho phép tôi lọc / tìm kiếm thư theo cách hơi phức tạp (người gửi, người nhận, sự hiện diện của tệp đính kèm, tìm kiếm chủ đề và nội dung)
  • xử lý các loại tệp đính kèm giống như mutt, ví dụ như mailcap hoặc tương đương để tôi có thể chạy thư HTML đến thông qua lynx hoặc nhấn một cái gì đó để mở nó trong trình duyệt đồ họa nếu cần, tôi có thể khởi chạy trình xem hình ảnh chỉ bằng cách nhấn nút, v.v.

Câu trả lời:


1

Tôi quên về NeoMutt hỗ trợ nhiều phần. https://neomutt.org/guide/mimesupport .


Đó là điều tốt để nghe. Trang bạn liên kết cho biết hỗ trợ gửi nhiều phần / thay thế là thô sơ nhưng tôi sẽ sớm thử lại một lần. Cảm ơn đã chỉ ra điều đó.
run

Neomutt được coi là một sự thay thế thả vào cho mutt ol 'thông thường. Một điều tốt đẹp khác là nó rõ ràng có sự phát triển tích cực khá lớn.
Davey

Có vẻ như tính năng này đã được thêm một năm trước: github.com/neomutt/neomutt/pull/734
tremby

Nó hoạt động rất tốt. Tôi đã tạo một macro tương tự như được đề xuất trong các tài liệu bạn đã đăng tại neomutt.org/guide/, - Tôi vẫn phải nhấn enter sau khi sử dụng macro và tôi không chắc điều gì sẽ xảy ra nếu tôi muốn thực hiện thay đổi sau khi tạo giải pháp thay thế nhưng trước khi gửi, nhưng tôi sẽ tìm ra tất cả những điều đó trong khóa học do. Lưu ý phiên bản đầu tiên để hỗ trợ nhiều phần / thay thế là bản phát hành 2018-05-12, bản này chưa có trong bản phân phối của tôi. Tôi biên dịch từ nguồn với --gnutls --prefix/usr/local --tokyocabinet.
run rẩy

-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

Dường như bạn đang trả lời câu hỏi "có thể sử dụng các chữ ký khác nhau trên mỗi 'từ' địa chỉ email", đây không phải là tất cả các câu hỏi tôi đã hỏi. Tôi không thấy cách này giúp gửi email nhiều phần / thay thế.
run rẩy

Tôi thấy bạn đã chỉnh sửa câu trả lời của bạn. OK để điều này kiểm tra địa chỉ email nào bạn gửi và đến (không giống như bạn làm bất cứ điều gì với "từ") và có thể thêm một số tiêu đề. Nhưng tôi vẫn không thấy cách này giúp gửi email nhiều phần / thay thế.
run

Bạn có thể sẽ cần phải điều chỉnh điều này cho nhu cầu của riêng bạn, vì vậy tôi có thể không thể đánh vần mọi thứ cho bạn. Nhưng giải pháp chung là bạn đặt trình soạn thảo của mình thành một tập lệnh gọi trình soạn thảo của bạn sau đó phân tích tệp dự thảo.
Davey

Chỉnh sửa cụ thể nào cho tệp nháp sẽ cho phép mutt gửi nhiều phần / thay thế? Đâu là hai phiên bản của tệp, HTML và văn bản thuần túy?
run

Bạn dường như có một cách để chuyển đổi với dấu hiệu chung. Thay thế bằng dòng someMultipartScript. $ 1 tại thời điểm đó sẽ là bản rõ. Gửi nó thông qua công cụ chuyển đổi của bạn ở đó và đặt nó vào cùng tên tệp $ 1. Khi tập lệnh này kết thúc, nó sẽ gửi tín hiệu đến chương trình gọi (mutt), rằng trình soạn thảo của bạn đã bị đóng, tại thời điểm đó nó sẽ sẵn sàng để gửi.
Davey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.