weixin_39559486
2020-11-27 03:08 阅读 14

Allow to reply to icalendar invitations

This is a proof of concept to reply to icalendar emails when the viewer is Gnus. It is based on gnus-icalendar which is part of Emacs.

To activate

elisp
(require 'mu4e-icalendar)
(mu4e-icalendar-setup)

该提问来源于开源项目:djcb/mu

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

90条回答 默认 最新

  • weixin_39524741 weixin_39524741 2020-11-27 03:08

    Nice work!

    I think it would be good if you could announce on the mailing-list, would be great if some "real-world" users of this feature could test it and chime in.

    Thanks!

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Before that, may you help me with creating a reply to the original sender only — without mu4e asking if I want to reply to everybody — and without citation? Is there a ready made function for that?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I had to modify the way reply messages are composed and introduce a new variable for selecting the recipients. It is the change I saw as the least intrusive (although I do not particularly like communicating through global variables).

    Remark: The message is not automatically sent at the moment. This is on purpose. I am thinking to make this configurable — automatic sending may fail if the context is not the right one. Also, I do not know how the recipient handle the addition of a message (OK with Gmail but, without message, Outlook web application cannot display it...).

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Well, for OWA, basically you cannot open .ics files from within OWA so a text summary of the ics file is useful. I just pushed a commit to that effect.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I've tested it works with Google.

    BTW, there are some decoding issues of SUMMARY:test 1 =E2=80=94 google although the header is

    
    Content-Type: text/calendar; charset="UTF-8"; method=REQUEST
    Content-Transfer-Encoding: quoted-printable
    

    (do now know if Gnus suffers the same issue). I guess the problem is the UTF-8 in capitals instead of utf-8.

    Edit: this is a bug in gnus-icalendar — now fixed.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Thanks a lot for doing all of this ! I really appreciate it!

    The responses being generated seem add the wrong recipient (commit 34a20d48). I don't know if this is related, but my mu4e config which has two accounts (contexts) defined: my private Gmail account and my work account.

    To produce this issue I did the following:

    1. Using my Google Calendar private account I created an event called "Test" and invited my work email to this event. I correctly received the invitation via my work account (so far so good):

    invitation-received

    1. Then I clicked the "Accept" button and the following response was generated

    invitation-response

    So as you can see the response has my work email listed as the recipient of the response, which is wrong (the recipient should have been my private email).

    Hope this helps!

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    The responses being generated seem add the wrong recipient (commit https://github.com/djcb/mu/commit/34a20d4831f1f63463767b53aaeaa158aaec9e49).

    gnus-icalendar-additional-identities is not about adding a recipient but identifying what email accounts are yours so it presents you with the buttons. Here is the documentation of that variable:

    
    gnus-icalendar-additional-identities is a variable defined in ‘gnus-icalendar.el’.
    Its value is nil
    
    Documentation:
    We need to know your identity to make replies to calendar requests work.
    
    Gnus will only offer you the Accept/Tentative/Decline buttons for
    calendar events if any of your identities matches at least one
    RSVP participant.
    
    Your identity is guessed automatically from the variables
    ‘user-full-name’, ‘user-mail-address’,
    ‘gnus-ignored-from-addresses’ and ‘message-alternative-emails’.
    
    If you need even more aliases you can define them here.  It really
    only makes sense to define names or email addresses.
    

    the response has my work email listed as the recipient of the response,

    I guess this is the same if you send an email from gmail to you work account and reply.

    To improve this, I can try to extract the organizer account from the ical file and (if it exist) force it to be used for the To field.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    May you try again the the additional commit?

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    many thanks!

    Well done! It seems to work as expected. This is a huge improvement of mu4e.

    I will give this feature some extra testing and let you know if I find anything.

    One suggestion:

    After responding to an invitation you may want to have it automatically trashed or moved to (say) the "Deleted Items" folder. I think most email clients does this by default and I think it makes the most sense.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    After responding to an invitation you may want to have it automatically trashed or moved to (say) the "Deleted Items" folder.

    I added some code to do that, set (setq mu4e-icalendar-trash-after-reply t). Let me know whether it is suitable for you (I personally prefer to keep the original invitation as it may contain a message).

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I have pushed a better version that will trash the message only when the reply is sent.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Great, thanks!

    It works very well!

    One more thing that came up:

    When I'm viewing the the response to the invitation, mu4e generates RSVP buttons, which it probably should not. As an example, consider the email response shown below that I received on my private account after responding to the invitation using my work account. To clarify, I would expect mu4e to only show the summary in this case.

    mu4e-reponse-has-rsvp

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I wrapped the text/calendar differently. It works for me but you can't add a text message on top it seems (not recognized by Google). May you test both (in mu4e and Gmail, with and without an additional message)?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I rebased on master... you need to apply https://github.com/djcb/mu/pull/1405 first.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Again, thanks for working on this. I will try to find time to test this again in the evening when I have access to my dev laptop. The next couple of days will be very busy but I will try to find some time to work on this whenever I can.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    (I eventually added a stronger check: only display the buttons when the method is REQUEST or PUBLISH.)

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    I'm struggling with building mu4e after updating (commit cb4c882ff1622e7333bbc470ac5701e27802d00f). For comparison, this doesn't happen on master. Do you know what's up? Are you also experiencing this? What happens when you perform a clean build?

    I tried the following:

    1. Cleaning the repository (just in case)
    bash
    λ sudo git clean -dfx
    
    1. Running autogen
    bash
    λ sudo ./autogen.sh
    

    autogen gives me the following output:

    
    mu configuration is complete.
    ------------------------------------------------
    mu version                           : 1.3.1
    
    Xapian version                       : 1.4.5
    GLib version                         : 2.56.3
    GMime version                        : 3.2.0
    Emacs version                        : GNU Emacs 26.2
    
    Have wordexp                         : yes
    Build mu4e emacs frontend            : yes
    Build 'mug' toy-ui (gtk+/webkit)     : no
    McCabe's Cyclomatic Complexity tool  : no
    
    Have direntry->d_ino                 : yes
    Have direntry->d_type                : yes
    ------------------------------------------------
    
    
    1. Building mu4e
    bash
    sudo make
    

    .. which produces the following errors:

    
    ...
    mu4e.texi:2671: unknown command `doe'
    mu4e.texi:2676: unknown command `work'
    mu4e.texi:2680: unknown command `work'
    Makefile:527: recipe for target 'mu4e.info' failed
    make[3]: *** [mu4e.info] Error 1
    make[3]: Leaving directory '/home/peter/git-repos/mu/mu4e'
    Makefile:761: recipe for target 'all-recursive' failed
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory '/home/peter/git-repos/mu/mu4e'
    Makefile:542: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/home/peter/git-repos/mu'
    Makefile:452: recipe for target 'all' failed
    make: *** [all] Error 2
    
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Your problem is because there was a bug in master (see https://github.com/djcb/mu/pull/1403#issuecomment-484540130). The problem has been fixed in master and I rebased on top of it.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Great, thanks!

    First I tried to create an event using my private account and invite my work account. After I responded to the invitation I got the following error when mu4e trashed the invitation.

    
    error in process filter: insert-file-contents-literally: Opening input file: No such file or directory, /home/peter/Maildir/work/Deleted Items/cur/1555620680_0.8676.peter-tp,U=29386,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST
    error in process filter: Opening input file: No such file or directory, /home/peter/Maildir/work/Deleted Items/cur/1555620680_0.8676.peter-tp,U=29386,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST
    

    But the email does correctly appear in my "Deleted Items" folder so despite the error everything looks OK.

    The response received on my work email shows up correctly, i.e. there's a summary but no RSVP buttons so that's great!

    I tried to repeat the scenario but with the roles of the accounts being reversed so that I'd use my work account to create the event and invite my private account. The result was the same: despite the error that occured when the invitation was being trashed (after responding to it) everything worked well:

    
    error in process filter: insert-file-contents-literally: Opening input file: No such file or directory, /home/peter/Maildir/private/[Gmail].Trash/cur/1555621075_0.10473.peter-tp,U=12620,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST
    error in process filter: Opening input file: No such file or directory, /home/peter/Maildir/private/[Gmail].Trash/cur/1555621075_0.10473.peter-tp,U=12620,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST
    
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Could you activate “Options → Enter debugger on error” and send the backtrace?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    P.S. The last commit allows to add an entry to the diary file of your choice upon reply.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Sure. Here's a backtrace produced when I tried to respond to an invitation using my private account (send from my work account). Strangely, the error wasn't raised the first time I tried (with the roles of the accounts being reversed).

    
    Debugger entered--Lisp error: (file-missing "Opening input file" "No such file or directory" "/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST")
      insert-file-contents("/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" nil nil nil nil)
      insert-file-contents-literally("/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST")
      mu4e~view-gnus((:docid 21309 :subject "Test 9" :date (23736 60383 0) :size 10481 :message-id "0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)))
      mu4e-view((:docid 21309 :subject "Test 9" :date (23736 60383 0) :size 10481 :message-id "0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)))
      mu4e~headers-update-handler((:docid 21309 :subject "Test 9" :date (23736 60383 0) :size 10481 :message-id "0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)) t t)
      mu4e~proc-filter(#<process> "\3767c\377(:info add :path \"/home/peter/Maildir/private/[Gmail].Sent Mail/cur/1555622948.11c411bd5a05286e.peter-tp:2,S\" :docid 21311)\n\376444\377(:update (\n\011:docid 21311\n\011:subject \"Accepted: Test 9\"\n\011:date (23736 60452 0)\n\011:size 1935\n\011:message-id \"87ef5zknob.fsf.com\"\n\011:path \"/home/peter/Maildir/private/[Gmail].Sent Mail/cur/1555622948.11c411bd5a05286e.peter-tp:2,S\"\n\011:maildir \"/private/[Gmail].Sent Mail\"\n\011:priority normal\n\011:flags (seen)\n\011:references ( \"0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk\" )\n\011:in-reply-to \"<0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk>\"\n\011:parts ((:index 1 :name \"1.msgpart\" :mime-type \"text/plain\" :type (leaf inline) :attachment nil  :size 145  )(:index 2 :name \"vcal-2.vcs\" :mime-type \"text/calendar\" :type (leaf) :attachment t  :size 991  )(:index 3 :name \"3.msgpart\" :mime-type \"text/plain\" :type (leaf) :attachment nil  :size 27  ))\n\011:from ((\"Peter W\303\274rtz Vinther Tran-J\303\270rgensen\" . \"peter.w.v.jorgensen.com\"))\n\011:to ((nil . \"pvj.au.dk\"))\n\011:user-agent \"mu4e 1.3.1; emacs 26.2\"\n\011:body-txt \"Summary:    Accepted: Test 9\nLocation:   \nTime:       <2019-04-18 21:00-21:30>\nOrganizer:  pvj.au.dk\nAttendance: Required\nMethod:     REPLY\n\n\n\n\n-- \nBest regards,\nPeter\n\"\n)\n :move nil)\n\37678\377(:sent t :path \"/home/peter/Maildir/private/[Gmail].Drafts/cur/1555622946.3390f2e12cfa1d48.peter-tp:2,DS\" :docid 21310)\n\3764ec\377(:update (\n\011:docid 21309\n\011:subject \"Test 9\"\n\011:date (23736 60383 0)\n\011:size 10481\n\011:message-id \"0bddc6d118284b0eacdbb9ff19da3ad4.uni.au.dk\"\n\011:path \"/home/peter/Maildir/private/[Gmail].Trash/cur/1555622889_0.26983.peter-tp,U=12624,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST\"\n\011:maildir \"/private/[Gmail].Trash\"\n\011:priority normal\n\011:flags (seen trashed)\n\011:parts ((:index 1 :name \"1.msgpart\" :mime-type \"text/plain\" :type (leaf) :attachment nil  :size 1  )(:index 2 :name \"2.msgpart\" :mime-type \"text/html\" :type (leaf) :attachment nil  :size 374  )(:index 3 :name \"vcal-3.vcs\" :mime-type \"text/calendar\" :type (leaf) :attachment t  :size 1978  ))\n\011:from ((\"Peter W\303\274rtz Vinther Tran-J\303\270rgensen\" . \"pvj.au.dk\"))\n\011:to ((\"peter.w.v.jorgensen.com\" . \"peter.w.v.jorgensen.com\"))\n\011:body-txt-params ((\"charset\" . \"iso-8859-1\"))\n\011:body-txt \"\n\"\n\011:body-html \"\n\n<meta http-equiv='\\\"Content-Type\\\"' content='\\\"text/html;' charset='iso-8859-1\\\"'>\n<style type='\\\"text/css\\\"' style='\\\"display:none\\\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n\"\n)\n :move t :maybe-view t)\n")
    </process>
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Do you compose emails in another window? Does Mu4e go back to the headers view after sending? I guess it is trying to redisplay the erased message — not sure why. In any case, if you confirm that adding text above the reply multipart makes it fail, I guess it will be better to send it automatically after letting the user chose the account he wants to use (with a default choice).

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Do you compose emails in another window?

    Assuming you mean another Emacs frame then the answer is "no". Everything is performed using a single frame.

    Does Mu4e go back to the headers view after sending?

    The mu4e-headers is there the entire time.

    I have mu4e-split-view set to horizontal so when I open the invitation I have the mu4e-headers at the top of the frame and the invitation message shown below the mu4e-headers. So basically the frame is split into two windows. Now, when I click (say) "Accept" the message view shows the composed response (before I send it). The mu4e-headers view is still there. After I send the response the window at the button returns to the original invitation message (with the mu4e-headers still at the top of the frame). So the workflow is just like when I'm responding to regular emails.

    But again, this error doesn't happen every time I try to produce it.

    In any case, if you confirm that adding text above the reply multipart makes it fail, I guess it will be better to send it automatically after letting the user chose the account he wants to use (with a default choice).

    Adding text above the reply multipart does not cause problems. The text shows up correctly in the response.

    In case it helps my mu4e config is available here.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    Can you try with the last commit?

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Now it seems like the "No such file or directory error" has disappeared but I'm getting a different error now. To produce it. I respond to the invitation. Then mu4e returns to the original message and everything looks OK. After waiting for a bit the following error then shows up. Presumably this happens when it tries to refresh the headers view. So basically I just wait for the error to happen.

    
    Debugger entered--Lisp error: (error #("[mu4e] Cannot find message in headers buffer" 1 5 (face mu4e-title-face)))
      signal(error (#("[mu4e] Cannot find message in headers buffer" 1 5 (face mu4e-title-face))))
      error("%s" #("[mu4e] Cannot find message in headers buffer" 1 5 (face mu4e-title-face)))
      mu4e-error("Cannot find message in headers buffer")
      mu4e-mark-marks-num()
      mu4e~headers-maybe-auto-update()
      run-hooks(mu4e-index-updated-hook)
      mu4e-info-handler((:info index :status complete :processed 18848 :updated 3 :cleaned-up 1))
      mu4e~proc-filter(#<process> "\37649\377(:info index :status complete :processed 18848 :updated 3 :cleaned-up 1)\n")
    </process>
    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    At least I can reproduce this every time now. Despite the error, everything works as expected. Can you reproduce this problem? To do so just set setq mu4e-icalendar-trash-after-reply to t, respond to the invitation, and wait for the update to happen.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    I could not reproduce the first one but could for the last error. I tried a slightly different approach (killing the Article buffer since it has no more header).

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Yes, the error does not show up anymore.

    When I respond to the invitation the message view now returns to the headers view which leaves me with a split view that shows two headers view --- one at the top of the Emacs frame and another one at the bottom of the Emacs frame. This seems a bit akward. Perhaps a more reasonable choice is to show the "next message" in the lower window so those who use a split view (which I believe is default behavior) do not end up in a situation with two header views.

    I noticed some other problem when I tried to use a different strategy for splitting views, specifically by using the following configuration (setq mu4e-split-view 'single-window). When I respond to an invitation using this strategy, mu4e returns immediately to the headers view after accepting the invitation, which is wrong. The email response created by mu4e is in a different buffer that the user must manually switch to. I'm not sure whether this is a problem with the single-window split strategy or it has something to do with this feature.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    I realise now that automatically trashing the message is quite complicated to get right due to the way mu4e views work. Strictly speaking this feature is not necessary. If you feel like automated trashing is taking to much time to implement then don't bother doing it. Even without this, your work has improved mu4e immensely!

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    The latter commit works on my side. Let me know what about you!

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    Thanks -- it works very well!

    The only issue there's left is the (rather unlikely) situation where no "next message" exists (the inbox is empty) in which case I receive the error shown below. If there's no "next message" to show after trashing the invitation we could just close/delete the window? So if you're using a split view that shows the mu4e headers at the top and the invitation at the bottom then if you delete the window that show the invitation you end up with a single window that shows only the headers view. Alternatively you'd have to switch to a different buffer but I can't think of anything that makes much sense.

    
    Debugger entered--Lisp error: (file-missing "Opening input file" "No such file or directory" "/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST")
      insert-file-contents("/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" nil nil nil nil)
      insert-file-contents-literally("/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST")
      mu4e~view-gnus((:docid 21458 :subject "Test17" :date (23738 9121 0) :size 10474 :message-id "c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)))
      mu4e-view((:docid 21458 :subject "Test17" :date (23738 9121 0) :size 10474 :message-id "c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)))
      mu4e~headers-update-handler((:docid 21458 :subject "Test17" :date (23738 9121 0) :size 10474 :message-id "c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk" :path "/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST" :maildir "/private/[Gmail].Trash" :priority normal :flags (seen trashed) :parts ((:index 1 :name "1.msgpart" :mime-type "text/plain" :type (leaf) :attachment nil :size 1) (:index 2 :name "2.msgpart" :mime-type "text/html" :type (leaf) :attachment nil :size 374) (:index 3 :name "vcal-3.vcs" :mime-type "text/calendar" :type (leaf) :attachment t :size 1978)) :from (("Peter Würtz Vinther Tran-Jørgensen" . "pvj.au.dk")) :to (("peter.w.v.jorgensen.com" . "peter.w.v.jorgensen.com")) :body-txt-params (("charset" . "iso-8859-1")) :body-txt "\n" :body-html "\n\n<meta http-equiv='\"Content-Type\"' content='\"text/html;' charset='iso-8859-1\"'>\n<style type='\"text/css\"' style='\"display:none\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n" :thread (:path "0" :level 0)) t t)
      mu4e~proc-filter(#<process> "\3767c\377(:info add :path \"/home/peter/Maildir/private/[Gmail].Sent Mail/cur/1555702744.025dc87ea26b6f48.peter-tp:2,S\" :docid 21460)\n\376443\377(:update (\n\011:docid 21460\n\011:subject \"Accepted: Test17\"\n\011:date (23738 9176 0)\n\011:size 1935\n\011:message-id \"87zholhjjb.fsf.com\"\n\011:path \"/home/peter/Maildir/private/[Gmail].Sent Mail/cur/1555702744.025dc87ea26b6f48.peter-tp:2,S\"\n\011:maildir \"/private/[Gmail].Sent Mail\"\n\011:priority normal\n\011:flags (seen)\n\011:references ( \"c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk\" )\n\011:in-reply-to \"<c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk>\"\n\011:parts ((:index 1 :name \"1.msgpart\" :mime-type \"text/plain\" :type (leaf inline) :attachment nil  :size 145  )(:index 2 :name \"vcal-2.vcs\" :mime-type \"text/calendar\" :type (leaf) :attachment t  :size 991  )(:index 3 :name \"3.msgpart\" :mime-type \"text/plain\" :type (leaf) :attachment nil  :size 27  ))\n\011:from ((\"Peter W\303\274rtz Vinther Tran-J\303\270rgensen\" . \"peter.w.v.jorgensen.com\"))\n\011:to ((nil . \"pvj.au.dk\"))\n\011:user-agent \"mu4e 1.3.1; emacs 26.2\"\n\011:body-txt \"Summary:    Accepted: Test17\nLocation:   \nTime:       <2019-04-20 22:00-22:30>\nOrganizer:  pvj.au.dk\nAttendance: Required\nMethod:     REPLY\n\n\n\n\n-- \nBest regards,\nPeter\n\"\n)\n :move nil)\n\37678\377(:sent t :path \"/home/peter/Maildir/private/[Gmail].Drafts/cur/1555702741.3dffb7fa1d46972e.peter-tp:2,DS\" :docid 21459)\n\3764eb\377(:update (\n\011:docid 21458\n\011:subject \"Test17\"\n\011:date (23738 9121 0)\n\011:size 10474\n\011:message-id \"c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk\"\n\011:path \"/home/peter/Maildir/private/[Gmail].Trash/cur/1555702699_0.16774.peter-tp,U=12649,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,ST\"\n\011:maildir \"/private/[Gmail].Trash\"\n\011:priority normal\n\011:flags (seen trashed)\n\011:parts ((:index 1 :name \"1.msgpart\" :mime-type \"text/plain\" :type (leaf) :attachment nil  :size 1  )(:index 2 :name \"2.msgpart\" :mime-type \"text/html\" :type (leaf) :attachment nil  :size 374  )(:index 3 :name \"vcal-3.vcs\" :mime-type \"text/calendar\" :type (leaf) :attachment t  :size 1978  ))\n\011:from ((\"Peter W\303\274rtz Vinther Tran-J\303\270rgensen\" . \"pvj.au.dk\"))\n\011:to ((\"peter.w.v.jorgensen.com\" . \"peter.w.v.jorgensen.com\"))\n\011:body-txt-params ((\"charset\" . \"iso-8859-1\"))\n\011:body-txt \"\n\"\n\011:body-html \"\n\n<meta http-equiv='\\\"Content-Type\\\"' content='\\\"text/html;' charset='iso-8859-1\\\"'>\n<style type='\\\"text/css\\\"' style='\\\"display:none\\\"'><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>\n\n\n<p><br>\n</p>\n\n\n\"\n)\n :move t :maybe-view t)\n")
    
    </c43126bab78f4ce0b0688ee87e58d97c.uni.au.dk></process>
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:08

    If there's no "next message" to show after trashing the invitation we could just to close/delete the window?

    I have force-pushed that behavior.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:08

    I have mu4e-split-view set to horizontal. If there's no "next message" to display it doesn't delete the window on my machine. Instead it returns to the headers view which leaves med with two headers view:

    mu4e-two-header-views

    To clarify, in case there's no "next message" to show I'd expect mu4e to delete the window that was used to show the invitation, which would look as follows:

    mu4e-single-headers-view.

    Do you experience a different behavior when mu4e-split-view set to horizontal?

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    I think I found a bug related to encoding (Danish letters). I was only able to produce this issue when the event was created using the Google Calendar web interface calendar.google.com

    To produce this issue I created an event, added the text "Test encoding 3 æøå" (without quotes) in both the title and the summary of the event and sent out the event. When I view the invitation it looks as follows:

    mu4e-invitation-encoding-issue

    When I accept the invitation and try to send the response mu4e prompts me for the following:

    mu4e-encoding-prompt

    When I try to send the invitation anyway, I receive the following error:

    
    These default coding systems were tried to encode text
    in the buffer ‘Re: Invitation: Test encodi...’:
      (utf-8 (127 . 4194243) (128 . 4194214) (129 . 4194243) (130
      . 4194232) (131 . 4194243) (132 . 4194213) (392 . 4194214) (393
      . 4194232) (394 . 4194213))
    However, each of them encountered characters it couldn’t encode:
      utf-8 cannot encode these: � � � � � � � � �
    
    Click on a character (or switch to this window by ‘M-x other-window’
    and select the characters by RET) to jump to the place it appears,
    where ‘C-u C-x =’ will give information about it.
    
    Select one of the safe coding systems listed below,
    or cancel the writing with C-g and edit the buffer
       to remove or modify the problematic characters,
    or specify any other coding system (and risk losing
       the problematic characters).
    
      raw-text no-conversion
    
    

    The backtrace looks as follows

    
    Debugger entered--Lisp error: (wrong-number-of-arguments (8 . 8) 10)
      helm-read-file-name-handler-1("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil "write-region" "*helm-mode-write-region*")
      apply(helm-read-file-name-handler-1 ("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil "write-region" "*helm-mode-write-region*"))
      helm--completing-read-default("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil)
      apply(helm--completing-read-default ("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil))
      #f(advice-wrapper :override completing-read-default helm--completing-read-default)("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil)
      read-coding-system("Select coding system (default raw-text): " raw-text)
      select-safe-coding-system-interactively(1 660 (raw-text no-conversion) (utf-8) nil raw-text)
      select-safe-coding-system(1 660 utf-8 nil "/home/peter/Maildir/work/Drafts/cur/1555749957.0d962175532db71a.peter-tp:2,DS")
      write-region(nil nil "/home/peter/Maildir/work/Drafts/cur/1555749957.0d962175532db71a.peter-tp:2,DS" nil t "~/Maildir/work/Drafts/cur/1555749957.0d962175532db71a.peter-tp:2,DS")
      basic-save-buffer-2()
      basic-save-buffer-1()
      basic-save-buffer(nil)
      save-buffer()
      #f(compiled-function () #<bytecode>)()
      run-hooks(message-send-hook)
      message-send(nil)
      message-send-and-exit(nil)
      funcall-interactively(message-send-and-exit nil)
      call-interactively(message-send-and-exit nil nil)
      command-execute(message-send-and-exit)
    </bytecode>

    Let me me know if you can't easily produce this issue. I could always try create the event and invite you but I'd need your email address for this

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    it doesn't delete the window on my machine.

    Sorry, I did it too fast. I force-pushed again with a slight modification.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I found a bug related to encoding (Danish letters).

    You likely encountered the fact the UTF-8 is not recognized. I do not know whether it is worth to have a temporary fix in mu4e for this (it will be corrected in the next Emacs 26).

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Sorry, I did it too fast. I force-pushed again with a slight modification.

    No worries. I tested again, but unfortunately mu4e still shows two header views as shown above. I even tried with a clean build. I'm on b524fb2e

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    You likely encountered the fact the UTF-8 is not recognized. I do not know whether it is worth to have a temporary fix in mu4e for this (it will be corrected in the next Emacs 26).

    Sounds great. No need to implement a temporary fix in mu4e if this will be fixed in Emacs 26.3 anyway. I will just try again using the snapshot version of Emacs.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Okay after trying this using Emacs 27.0.50 I'm now able to view the message correctly (so an improvement over Emacs 26):

    mu4e-emacs27-view-message

    However, the encoding issue is still there in the generated response message:

    mu4e-emacs27-summary-encoding-issue

    As before, mu4e presents me with the prompt. If I try to send the response anyway, I end up with the following error:

    
    These default coding systems were tried to encode text
    in the buffer ‘Re: Invitation: Test encodi...’:
      (utf-8 (392 . 4194214) (393 . 4194232) (394 . 4194213))
    However, each of them encountered characters it couldn’t encode:
      utf-8 cannot encode these: � � �
    
    Click on a character (or switch to this window by ‘M-x other-window’
    and select the characters by RET) to jump to the place it appears,
    where ‘C-u C-x =’ will give information about it.
    
    Select one of the safe coding systems listed below,
    or cancel the writing with C-g and edit the buffer
       to remove or modify the problematic characters,
    or specify any other coding system (and risk losing
       the problematic characters).
    
      raw-text no-conversion
    

    The backtrace looks as follows:

    
    Debugger entered--Lisp error: (wrong-number-of-arguments (8 . 8) 10)
      helm-read-file-name-handler-1("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil "write-region" "*helm-mode-write-region*")
      apply(helm-read-file-name-handler-1 ("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil "write-region" "*helm-mode-write-region*"))
      helm--completing-read-default("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil)
      apply(helm--completing-read-default ("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil))
      #f(advice-wrapper :override completing-read-default helm--completing-read-default)("Select coding system (default raw-text): " (("utf-8-hfs") ("utf-8-hfs-mac") ("utf-8-hfs-dos") ("utf-8-hfs-unix") ("georgian-academy") ("georgian-academy-mac") ("georgian-academy-dos") ("georgian-academy-unix") ("georgian-ps") ("georgian-ps-mac") ("georgian-ps-dos") ("georgian-ps-unix") ("cp1256") ("cp1256-mac") ("cp1256-dos") ("cp1256-unix") ("windows-1256") ("windows-1256-mac") ("windows-1256-dos") ("windows-1256-unix") ("iso-8859-6") ("iso-8859-6-mac") ("iso-8859-6-dos") ("iso-8859-6-unix") ("tcvn-5712") ("tcvn-5712-mac") ("tcvn-5712-dos") ("tcvn-5712-unix") ("tcvn") ("tcvn-mac") ("tcvn-dos") ("tcvn-unix") ("vietnamese-tcvn") ("vietnamese-tcvn-mac") ("vietnamese-tcvn-dos") ("vietnamese-tcvn-unix") ("cp1258") ("cp1258-mac") ("cp1258-dos") ("cp1258-unix") ("windows-1258") ("windows-1258-mac") ("windows-1258-dos") ("windows-1258-unix") ("viqr") ("viqr-mac") ("viqr-dos") ("viqr-unix") ("vietnamese-viqr") ("vietnamese-viqr-mac") ...) nil t nil coding-system-history "raw-text" nil)
      read-coding-system("Select coding system (default raw-text): " raw-text)
      select-safe-coding-system-interactively(1 658 (raw-text no-conversion) (utf-8) nil raw-text)
      select-safe-coding-system(1 658 utf-8 nil "/home/peter/Maildir/work/Drafts/cur/1555753125.e3d...")
      write-region(nil nil "/home/peter/Maildir/work/Drafts/cur/1555753125.e3d..." nil t "~/Maildir/work/Drafts/cur/1555753125.e3d6c09c2c8fd...")
      basic-save-buffer-2()
      basic-save-buffer-1()
      basic-save-buffer(nil)
      save-buffer()
      #f(compiled-function () #<bytecode>)()
      run-hooks(message-send-hook)
      message-send(nil)
      message-send-and-exit(nil)
      funcall-interactively(message-send-and-exit nil)
      call-interactively(message-send-and-exit nil nil)
      command-execute(message-send-and-exit)
    </bytecode>
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I'm testing on b524fb2

    Well, it works for me. I end up with: Mu4e I suppose that if you are in an article and press M-: (kill-buffer-and-window) the window disappear and only the headers are left, right?

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Well, it works for me. I end up with:

    Okay so I tested again and now it works. Perhaps I messed something up, sorry! All I changed was my Emacs version (I'm using 27.0.50).

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    The UTF-8 decoding in the reply should be fixed.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Great job, it works! Thanks for doing all of this!

    Now is probably a good time to merge this feature into master and ask people to try it out. What do you think?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Now is probably a good time to merge this feature into master and ask people to try it out.

    Yes, I think it is ready for public consumption. :-)

    点赞 评论 复制链接分享
  • weixin_39723248 weixin_39723248 2020-11-27 03:09

    I seem to run into a dependency problem: basically mu4e-icalendar.el depends on gnus-icalendar. I have both of them loaded (in theory) in my lisp subfolder of my emacs config tree. Now I get an error message saying that my /something/something/emacs.d/lisp/gnus-icalendar.el does not provide gnus-icalendar.el which does not make sense since I've actually installed gnus-icalendar.el (i.e, created the file, evaled it etc.)

    Did I copy the right gnus-icalendar file? It looks like it was written in 2013 and may be found on Github. Help appreciated.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I do not understand why you have to copy anything: gnus-icalendar is part of Emacs.

    点赞 评论 复制链接分享
  • weixin_39723248 weixin_39723248 2020-11-27 03:09

    Somehow my search did not indicate gnus-icalendar as being part of the built-in list in my package manager and there is one GitHub repo hosting an old version of it. I'll clear that up then...

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    LIke Chris00 says, gnus is part of recent versions of Emacs. To activate this feature all you have to do is to add the following to your mu4e configuration:

    elisp
    (require 'mu4e-icalendar)
    (mu4e-icalendar-setup)
    ;; Optional
    ;; (setq mu4e-icalendar-trash-after-reply t)
    

    could you kindly edit the PR description to mention this? Just to avoid confusion.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    could you kindly edit the PR description to mention this? Just to avoid confusion.

    Isn't this comment enough?

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Yes, I guess you're right, thanks!

    点赞 评论 复制链接分享
  • weixin_39723248 weixin_39723248 2020-11-27 03:09

    : I knew about Gnus being part of Emacs but I thought the gnus-icalendar was actually a separate package -hence my confusion. In any case, adding that one bit to the PR description could certainly help. Thank you

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I edited the initial message. Hopefully, it will avoid future confusion.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I enabled lexical binding and the code is neater now.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Any additional remark?

    点赞 评论 复制链接分享
  • weixin_39524741 weixin_39524741 2020-11-27 03:09

    Looks good overall, see my review comment. I'm happy to merge it otherwise, if you squash your commit to perhaps 4-5 logical ones, prefixed with mu4e:. magit or such tools should hopefully make that easy.

    Otherwise, great work, thanks a lot! We need to document it in the manual but I first need to add some chapter for the new gnus-based view.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    did you have time to look into this? (squashing the commits and solving the conflicts in mu4e-draft.el). It would be great to have this feature merged into master for further testing.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I wont have time to finish this before the beginning of July.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    Sure, that's perfectly fine. Thanks for letting me know.

    点赞 评论 复制链接分享
  • weixin_39524741 weixin_39524741 2020-11-27 03:09

    about to merge this, but now we have a merge conflict... any thoughts?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    On 12 July 2019 at 21:20 CEST, Dirk-Jan C. Binnema wrote:

    about to merge this, but now we have a merge conflict... any thoughts?

    I'll try to have a look this Saturday.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Conflict fixed

    点赞 评论 复制链接分享
  • weixin_39524741 weixin_39524741 2020-11-27 03:09

    Awesome! Merged, thanks!

    点赞 评论 复制链接分享
  • weixin_39824898 weixin_39824898 2020-11-27 03:09

    using mu-1.3.3, I see the [ Accept ] [ Tentative ] [ Decline ] buttons, but when I click [ Accept ], I get the response "This is a pseudo-article", which is uninformative to me. Is this to do with how the invite was sent (i.e. it doesn't actually accept responses)? Or a misconfiguration on my part?

    My init.el config is:

    
    
    ;; icalendar
    (require 'gnus-icalendar)
    (gnus-icalendar-setup)
    
    (setq gnus-icalendar-org-capture-file "~/Documents/Org/Agenda.org")
    (setq gnus-icalendar-org-capture-headline '("Calendar")) ;;make sure to create Calendar heading first
    (gnus-icalendar-org-setup)
    
    
    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Please have a look to the proper instructions to setup ical integration.

    点赞 评论 复制链接分享
  • weixin_39824898 weixin_39824898 2020-11-27 03:09

    Cheers! Changed

    
    (require 'gnus-icalendar)
    (gnus-icalendar-setup)
    

    to:

    
    
    (require 'mu4e-icalendar)
    (mu4e-icalendar-setup)
    

    And it all seems to be working.

    点赞 评论 复制链接分享
  • weixin_39674414 weixin_39674414 2020-11-27 03:09

    Thanks so much for this contribution. However, using version 1.3.4 and the recommended configuration setup the buttons do not show up (only the attached vcs file). Do I need to call the mu4e-icalendar configuration at any specific point? I am using use-package to call mu4e. Thank you in advance.

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    In addition to the ical configuration you need to enable gnus article view. Does the following configuration work?

    elisp
    ;; Use gnus article view
    (setq mu4e-view-use-gnus t)
    
    (require 'mu4e-icalendar)
    (mu4e-icalendar-setup)
    ;; Optional
    ;; (setq mu4e-icalendar-trash-after-reply t)
    
    点赞 评论 复制链接分享
  • weixin_39674414 weixin_39674414 2020-11-27 03:09

    Hi and thanks for the help. Not entirely. The buttons do show up, but expanded headers also show up and there is no color highlight as in your above post. When I try to accept the invitation I get an error mu4e-error: [mu4e] Message must be non-nil [2 times]

    `
    Received: from VI1PR01MB3981.eurprd01.prod.exchangelabs.com
     (2603:10a6:3:9e::26) by HE1PR0102MB3289.eurprd01.prod.exchangelabs.com with
     HTTPS via HE1PR0701CA0058.EURPRD07.PROD.OUTLOOK.COM; Tue, 27 Aug 2019
     14:50:29 +0000
    Received: from HE1PR0102CA0004.eurprd01.prod.exchangelabs.com
     (2603:10a6:7:14::17) by VI1PR01MB3981.eurprd01.prod.exchangelabs.com
     (2603:10a6:802:5e::10) with Microsoft SMTP Server (version=TLS1_2,
     cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Tue, 27 Aug
     2019 14:50:27 +0000
    Received: from DB5EUR01FT016.eop-EUR01.prod.protection.outlook.com
     (2a01:111:f400:7e02::206) by HE1PR0102CA0004.outlook.office365.com
     (2603:10a6:7:14::17) with Microsoft SMTP Server (version=TLS1_2,
     cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2199.14 via Frontend
     Transport; Tue, 27 Aug 2019 14:50:27 +0000
    Authentication-Results: spf=pass (sender IP is 209.85.221.41)
     smtp.mailfrom=server1; server2; dkim=pass (signature was verified)
     header.d=server1;server2; dmarc=pass action=none
     header.from=gmail.com;compauth=pass reason=100
    Received-SPF: Pass (protection.outlook.com: domain of gmail.com designates
     209.85.221.41 as permitted sender) receiver=protection.outlook.com;
     client-ip=209.85.221.41; helo=mail-wr1-f41.google.com;
    Received: from mail-wr1-f41.google.com (209.85.221.41) by
     DB5EUR01FT016.mail.protection.outlook.com (10.152.4.255) with Microsoft SMTP
     Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id
     15.20.2199.13 via Frontend Transport; Tue, 27 Aug 2019 14:50:27 +0000
    Received: by mail-wr1-f41.google.com with SMTP id k2so19135144wrq.2
            for <one_of_my>; Tue, 27 Aug 2019 07:50:27 -0700 (PDT)
    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
            d=gmail.com; s=20161025;
            h=mime-version:from:message-id:to:date:subject;
            bh=6y+DvQSxb39W8mmxrHOsCQSYS/6+wUIq+79Qxb7nyAo=;
            b=XwkBdawUGz5hlRaqf0tQItzAFhuXCkGorGNpMvCoifGA0oTdSxxEKUWlgCqXr3Fak1
             Al+t6Dk8W+nLfUDB2uc7oXTwKQ1q6ScdSjWTJ7wB0EaiVWyWKj2j9q2CL9/1GcNG3gHZ
             v8dspjmlqD+U+2STq6XeUek5r38rlP+647+itjHUIXlCPszHgSjH+Ok1serv/cv9uA5rC
             rdwh5lDO8CTO8aOrrRBX8TbN6lqMLfC3NzHyT/oIOMWHT6awlPGwxCy7RDxaJQ0KyI/P
             CIzrlAkfv+1Rj5J3ZBokFcgIdECIcpFJ5Z8+Ll+R7Uwpim8oCRY6C3JoM2CtY4xmVAcm
             FYsg==
    X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
            d=1e100.net; s=20161025;
            h=x-gm-message-state:mime-version:from:message-id:to:date:subject;
            bh=6y+DvQSxb39W8mmxrHOsCQSYS/6+wUIq+79Qxb7nyAo=;
            b=TfNLUvOuWcUPjstCZGfcP6shsVTo+nHiDjAekqYerwA4UyuJFQ5Cv30MPtRcjKEqzX
             PCxJ13UPYUx5lfHnJaO1uoGzjepb5RQzXtqN8lH9t0bTFZnCm6c5+1KCEoJQenCpkoqX
             dXs8x9x9X+2lzuspoIZPRj1RbmyipS/WU3qJZc6MZcDs8Lm/lHjkOgPQVJ90sjtXSpYZ
             IMZmI+TTr25m7VM/nbUmEKxzQyL43lfbN5CO30F/r/EftW8wkRr6XkRGTs2DhkFrjLtr
             pdi8wYDDJu6rDuggI61VI9sFLilaJo1nERtTyKfZNSCEl75DHBsq+e32YnMX3k8+HdFd
             lAdA==
    X-Gm-Message-State: APjAAAWwzAnHEILNdk1IPzel/akvR6fWIUJKdXpRTlADA12+Gb7iIZFL
        YjyWzQk5GUitDgPnW2JMRq4MVBOx
    X-Google-Smtp-Source: APXvYqx3u0JvTW0mLi0C67AxBjGEfIIt+wwJap4ZY8UZzMrKScJgWKMJJ3IWWMLRKRt23Cz3kMpGQA==
    X-Received: by 2002:adf:aa85:: with SMTP id h5mr28425411wrc.329.1566917426533;
            Tue, 27 Aug 2019 07:50:26 -0700 (PDT)
    Return-Path: one_of_my_
    Received: from [192.168.8.103] (82-132-218-180.dab.02.net. [82.132.218.180])
            by smtp.com with ESMTPSA id n8sm13187352wrw.28.2019.08.27.07.50.25
            for <one_of_my_>
            (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
            Tue, 27 Aug 2019 07:50:26 -0700 (PDT)
    From: me <one_of_my_other>
    Message-ID: <989b1a95-701f-f885-b9fb-cc33f5c140e1.com>
    To: myname <one_of_my_>
    Date: Tue, 27 Aug 2019 15:50:24 +0100
    Subject: Event Invitation: loco
    Content-type: multipart/mixed; boundary="Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)"
    X-MS-Exchange-Organization-ExpirationStartTime: 27 Aug 2019 14:50:27.0779
     (UTC)
    X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
    X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
    X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
    X-MS-Exchange-Organization-Network-Message-Id:
     f426c2c5-daa0-47e3-e21b-08d72afde60a
    X-EOPAttributedMessage: 0
    X-EOPTenantAttributedMessage: 07ef1208-413c-4b5e-9cdd-64ef305754f0:0
    X-MS-Exchange-Organization-MessageDirectionality: Incoming
    X-Forefront-Antispam-Report:
     CIP:209.85.221.41;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(4636009)(2980300002)(199004)(37854004)(189003)(8156004)(82202003)(7596002)(305945005)(16586007)(6916009)(5024004)(7636002)(14444005)(55446002)(36756003)(95326003)(356004)(8676002)(71190400001)(1096003)(5660300002)(59536001)(60616004)(246002)(126002)(2160300002)(16003)(61266001)(956004)(31696002)(2616005)(60626007)(476003)(86362001)(33964004)(31686004)(486006)(106002)(76482006)(26005)(2476003)(568964002)(5000100001)(336012)(426003)(34756004)(73392003);DIR:INB;SFP:;SCL:1;SRVR:VI1PR01MB3981;H:mail-wr1-f41.google.com;FPR:;SPF:Pass;LANG:en;PTR:mail-wr1-f41.google.com;A:1;MX:1;
    X-MS-Exchange-Organization-AuthSource:
     DB5EUR01FT016.eop-EUR01.prod.protection.outlook.com
    X-MS-Exchange-Organization-AuthAs: Anonymous
    X-MS-PublicTrafficType: Email
    X-MS-Office365-Filtering-Correlation-Id: f426c2c5-daa0-47e3-e21b-08d72afde60a
    X-Microsoft-Antispam:
     BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600166)(711020)(4605104)(4709080)(8001031)(1402095)(49563074)(71702078);SRVR:VI1PR01MB3981;
    X-MS-TrafficTypeDiagnostic: VI1PR01MB3981:
    X-MS-Exchange-AtpMessageProperties: SA|SL
    X-MS-Oob-TLC-OOBClassifiers: OLM:1148;
    X-MS-Exchange-Organization-SCL: 1
    X-MS-Exchange-ATPSafeLinks-Stat: 0
    X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2019 14:50:27.0679
     (UTC)
    X-MS-Exchange-CrossTenant-Network-Message-Id: f426c2c5-daa0-47e3-e21b-08d72afde60a
    X-MS-Exchange-CrossTenant-Id: 07ef1208-413c-4b5e-9cdd-64ef305754f0
    X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
    X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR01MB3981
    X-MS-Exchange-Transport-EndToEndLatency: 00:00:02.5562681
    X-MS-Exchange-Processed-By-BccFoldering: 15.20.2178.000
    X-Microsoft-Antispam-Mailbox-Delivery:
        ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(20160514016)(750127)(520011016)(944506383)(944626516);
    X-Microsoft-Antispam-Message-Info:
        zv+bC0JX62/p2wYtMlEI5NNfbI8858NJnljAqXa/K//OgYQTXFo0NAKCdNwLD9KDEvbB5kocOxPs3pscMJfwehRqG38+ibXEKZYvimMmFuodS2NqGItxhgW3D78BCP+lYDnaPvYSL4wYlG/1Zrw87boOYvNEsHyIOeq/LcwT4OHrflEhIEh0ZYy+Sn7f+igRuvQjvIRzJqG38VsVBFC1rdcUrXgFIkD35uauOjf9hLv1qNJ7xm0QC5YHUwoJSAkFcSI2kmHgyc0T0GNDm436QEMLI2dE8uhDWA2UVccxSoCUa6Alz+HMW7OEr9uz0HDFMolNouccBhK2jcBzfarI3CSLN9SBVhQWJ8D/94jXA2XBOwKlFXUolH4bAFZGaMPK5yWSstW1XILjK7h6XBmqy0/E/tgaickQ4WB/OtgOYNSrEKYYuk0W68a5w+K7SHMAiQIyhu/xapqRJ00Z+dAqCn+KHA6eDpsQQkC7WWqUc0rW7wh9wYt9cMzXI2vdsWdTwHAWaE2WDhpCp1cAB6oO/203DV6b7f+6bL6/mauucKs5B3IMlPgyFIRaodcUIoz68rXYqrW3T1VOqgG/6IfPum4x8Yeq5+bpjqlYNz8oPvw0wD47cCv+t+8UtUCUPQ35H/DRFGR8leqCCzrCED0awmNTi9d14LHrxM8jg9FCNm7sysQrkCKCthUTte6Qokmef4e82OBH+3zqQcCwECvNj7W8qH+oojXF0NSJ6InzhUuQhmh455jhuZ4FVOisRvNpR/Tcw1gAGvxJSAa+TJZqY9pnovl39e3W1MKzlpa1Nz/F77KtFIdi7nQLfIY6Ep9HtqVldcDdew1o5cxzR1Wfr5NRciFJZRw0NlGQBjjqOtGtIrSmxpC0QM9x/QswnrXB/Fu7HuCDXzvc0+6W06ae7Cxj/DetoR+Gw3R0aZmJ/z3hq52xKWCrS1XdFbdSPASOyvAKveWDZjyDL9Kv2J3KsZfxBRgiI9SY8/LhdULLFxFMtw4pGa9Fci98R8R+SdOCY0/2CaZWIohgciBkB4pnfX80GMxS3hUZHo0+ZwDW9sOXzg+YsudJNs7DPb2kP9rU3naUBmgM+vdDHjnNU8gSwRg5ria7CgzBFFxZ3+nz3zI1oa0luOZ5sqdPjD+/0Xl0sZtWkjlmoYJu/CqyK3Djze9WW5wao086M0Unu9OJPF/NEEPQ6UqQlxJPLzKdcdV7RfLkYlZMJUyubtA0nOYyqEz4Wjk/mArwJBEZNjhiU8A=
    MIME-Version: 1.0
    X-TUID: UqKS5iZtkPzf
    
    [ Accept ]    [ Tentative ]    [ Decline ]    
    
    
    </one_of_my_></one_of_my_other></one_of_my_></one_of_my>

    `

    点赞 评论 复制链接分享
  • weixin_39743414 weixin_39743414 2020-11-27 03:09

    The highlighting might just be theme related. My current theme does not highlight them either.

    What does the stacktrace look like?

    Could it be that something else changed that would require you to index your messages again? Perhaps you need to run mu index --rebuild after upgrading mu?

    点赞 评论 复制链接分享
  • weixin_39674414 weixin_39674414 2020-11-27 03:09

    Ok, I was able to get it to work as soon as I commented the lines below. Thank you very much. Incidentally, how can I make the events show up in my Org-agenda?

    `elisp
    (setq gnus-icalendar-org-capture-file "~/org/NOTES.org")
    (setq gnus-icalendar-org-capture-headline '("Calendar"))
    (gnus-icalendar-org-setup)
    

    `

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Org mode integration has to be worked on. I am afraid I have no time to work on this right now.

    点赞 评论 复制链接分享
  • weixin_39674414 weixin_39674414 2020-11-27 03:09

    For those who have to work with a MS Exchange server there is this option to probe the calendar of the server using excorporate.

    点赞 评论 复制链接分享
  • weixin_39978863 weixin_39978863 2020-11-27 03:09

    Would this work in mu/mu4e 1.2 if I take a copy of mu4e-icalendar.el ?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    I suppose it would (with the Gnus based viewer). In any case, you can try — it should do no harm.

    点赞 评论 复制链接分享
  • weixin_39978863 weixin_39978863 2020-11-27 03:09

    Thanks , this worked very well:

    elisp
        (use-package mu4e-icalendar
          :config
          (mu4e-icalendar-setup)
          :quelpa (mu4e-icalendar :fetcher url :url "https://raw.githubusercontent.com/djcb/mu/master/mu4e/mu4e-icalendar.el
    
    点赞 评论 复制链接分享
  • weixin_39978863 weixin_39978863 2020-11-27 03:09

    Accepting the invitations is not working for me. I get the This is a pseudo-article error as described here, even if I am doing the specific mu4e setup.

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Then please upgrade to the latest mu4e — the Gnus mode was also greatly improved.

    点赞 评论 复制链接分享
  • weixin_39978863 weixin_39978863 2020-11-27 03:09

    Great. I built my own package from git and I confirm everything is working.

    点赞 评论 复制链接分享
  • weixin_39560604 weixin_39560604 2020-11-27 03:09

    What's the good version of mu4e ? I have to a This is a pseudo-article error

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    You must use the development version of mu. (It is not difficult to compile yourself.)

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    Or you may want to try recipie.

    点赞 评论 复制链接分享
  • weixin_39560604 weixin_39560604 2020-11-27 03:09

    Okay. I'm not too much of a stuntman. Is integration into the stable version planned ?

    点赞 评论 复制链接分享
  • weixin_39943586 weixin_39943586 2020-11-27 03:09

    just checking, when I click the [ Accept ] button and send it straightaway, should I expect the organiser's calendar to automatically update my status as invitee and mark me as accepted? I have tried from both an outlook calendar and a google calendar and if I get no error in the process and acceptance emails reach the organisers' inboxes fine, their calendar still mark me as "didn't respond".

    If that's not the expected behaviour, any suggestion on what to look for to debug? I have tried to compare the ICS produced by GMail vs the one generated here and if there are differences, nothing substantial jumped at me.

    点赞 评论 复制链接分享
  • weixin_39943586 weixin_39943586 2020-11-27 03:09

    Correction: it works out of the box for Google assuming you don't send the invite from an email that mu knows as yours. If both emails for organiser and attendee are listed as personal addresses in your mu, it then creates two ATTENDEE;PARTSTAT: lines one for each which then break the updating of the organiser calendar. In fact I have even managed to get 3+ of these lines by inviting more emails that I own.

    In other words, I run into an edge case due to my test setup. I don't observe the same phenomenon with Outlook Calendar, yet I can't get it to work. I will try to test it from an email I don't own and will report back to discard such edge case.

    点赞 评论 复制链接分享
  • weixin_39943586 weixin_39943586 2020-11-27 03:09

    I have been able to try with a different outlook account and indeed my setup that just works with Google Calendar doesn't with Outlook Calendar: RSVP is received, text/calendar part looks all right but the calendar still marks my invitation as "didn't respond".

    点赞 评论 复制链接分享
  • weixin_39978863 weixin_39978863 2020-11-27 03:09

    This broke for me recently. I get no attachment once I click the accept button. Did it happen for anyone else?

    点赞 评论 复制链接分享
  • weixin_39559486 weixin_39559486 2020-11-27 03:09

    May you open an issue with these details? It will be easier to follow. If the organizer is you, you do not expect that accepting your own event updates your calendar, do you?

    点赞 评论 复制链接分享
  • weixin_39943586 weixin_39943586 2020-11-27 03:09

    Good idea . Done: https://github.com/djcb/mu/issues/1729

    点赞 评论 复制链接分享
  • weixin_39609822 weixin_39609822 2020-11-27 03:09

    This looks great. I've just tried it and it works on the small example I tried. Is it worth adding to the info for mu4e? (If so, I'm happy to send a patch)

    点赞 评论 复制链接分享

相关推荐