diff options
Diffstat (limited to '')
| -rw-r--r-- | 2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt | 1332 |
1 files changed, 1332 insertions, 0 deletions
diff --git a/2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt b/2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt new file mode 100644 index 00000000..c4e86336 --- /dev/null +++ b/2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt @@ -0,0 +1,1332 @@ +WEBVTT captioned by sachac + +NOTE Introduction + +00:00:02.620 --> 00:00:04.799 +Hello, my name is Amin Bandali, + +00:00:04.800 --> 00:00:06.359 +and today I'd like to talk about + +00:00:06.360 --> 00:00:08.799 +reading and writing emails in GNU Emacs + +00:00:08.800 --> 00:00:14.319 +using Gnus specifically. + +00:00:14.320 --> 00:00:16.879 +Gnus has had this sort of reputation + +00:00:16.880 --> 00:00:20.599 +of being difficult to approach and configure. + +00:00:20.600 --> 00:00:23.359 +That's understandable + +00:00:23.360 --> 00:00:26.319 +because it has many, many options + +00:00:26.320 --> 00:00:27.679 +and major and minor modes + +00:00:27.680 --> 00:00:30.679 +that interact in different ways with each other. + +00:00:30.680 --> 00:00:35.319 +And it also doesn't help that Gnus started originally + +00:00:35.320 --> 00:00:36.359 +as a newsreader + +00:00:36.360 --> 00:00:38.759 +rather than a mail client. + +00:00:38.760 --> 00:00:40.879 +So a lot of the terminology that it uses + +00:00:40.880 --> 00:00:42.519 +is also rooted in that, + +00:00:42.520 --> 00:00:45.559 +in reading and writing news. + +00:00:45.560 --> 00:00:48.119 +But nevertheless, with this video and talk, + +00:00:48.120 --> 00:00:52.159 +I hope to provide a sort + +00:00:52.160 --> 00:00:55.759 +of very quick introduction + +00:00:55.760 --> 00:00:57.539 +of starting to use Gnus + +00:00:57.540 --> 00:01:00.919 +to read and write email and send it. + +00:01:00.920 --> 00:01:02.679 +We will use Gnus' IMAP support, + +00:01:02.680 --> 00:01:06.119 +mainly because a lot of people + +00:01:06.120 --> 00:01:08.679 +these days have email accounts + +00:01:08.680 --> 00:01:10.759 +with mail service providers + +00:01:10.760 --> 00:01:12.039 +that support IMAP, + +00:01:12.040 --> 00:01:14.319 +which is an open standard. + +00:01:14.320 --> 00:01:17.479 +So it's widely available and supported + +00:01:17.480 --> 00:01:19.719 +across many different providers + +00:01:19.720 --> 00:01:25.239 +as well as mail clients or mail user agents as well. + +NOTE Demo + +00:01:25.240 --> 00:01:30.559 +Okay, so let's just jump straight right in. + +00:01:30.560 --> 00:01:34.279 +I will enter this demo directory that I created + +00:01:34.280 --> 00:01:36.919 +for the purposes of this demonstration + +00:01:36.920 --> 00:01:40.999 +and change my home directory to this one + +00:01:41.000 --> 00:01:49.839 +so that we can safely experiment with Gnus here. + +00:01:49.840 --> 00:01:53.979 +For this presentation, I've written up + +00:01:53.980 --> 00:01:56.839 +a quick initialization file or init file + +00:01:56.840 --> 00:01:59.719 +that I will share afterwards as well + +00:01:59.720 --> 00:02:01.639 +to get us going with Gnus. + +00:02:01.640 --> 00:02:04.519 +There's not much to it at the moment. + +00:02:04.520 --> 00:02:07.399 +Just set up the package archives and + +00:02:07.400 --> 00:02:09.479 +install the keycast package + +00:02:09.480 --> 00:02:14.079 +for showing the key presses in the mode line. + +00:02:14.080 --> 00:02:15.359 +Yeah, that's about it. + +00:02:15.360 --> 00:02:16.239 +And I'll also define + +00:02:16.240 --> 00:02:20.279 +a little like inline function +emacs.d + +00:02:20.280 --> 00:02:24.079 +that allows me to conveniently write + +00:02:24.080 --> 00:02:26.639 +and have it expanded + +00:02:26.640 --> 00:02:29.300 +or refer to files and directories, rather, + +00:02:29.301 --> 00:02:30.900 +paths that we could expand, + +00:02:30.901 --> 00:02:32.833 +inside my Emacs configuration directory. + +00:02:32.834 --> 00:02:37.500 +I also have this eval-last-sexp + +00:02:37.501 --> 00:02:41.119 +bound to a global key, + +00:02:41.120 --> 00:02:43.279 +so that I will be able to easily + +00:02:43.280 --> 00:02:47.519 +use it for this talk. + +00:02:47.520 --> 00:02:49.959 +Okay, let's jump right in. + +NOTE Don't panic + +00:02:49.960 --> 00:02:52.239 +First things first, don't panic. + +00:02:52.240 --> 00:02:55.267 +And that's actually also the name + +00:02:55.268 --> 00:02:58.359 +of the very first node + +00:02:58.360 --> 00:03:01.559 +in the Gnus manual when you open it. + +00:03:01.560 --> 00:03:02.839 +And it's actually nice. + +00:03:02.840 --> 00:03:04.479 +I definitely, definitely recommend + +00:03:04.480 --> 00:03:07.079 +that you look through + +00:03:07.080 --> 00:03:10.199 +at least the very first couple of chapters of this, + +00:03:10.200 --> 00:03:14.199 +skim through it, and later on refer to it + +00:03:14.200 --> 00:03:16.133 +whenever you find something confusing + +00:03:16.134 --> 00:03:19.499 +or don't understand it. + +00:03:19.500 --> 00:03:21.359 +But yeah, we'll start + +00:03:21.360 --> 00:03:22.399 +with these two paragraphs here. + +00:03:22.400 --> 00:03:23.639 +So again, a Gnus installation + +00:03:23.640 --> 00:03:28.119 +is basically just a list of one or more servers + +00:03:28.120 --> 00:03:30.119 +and the subscribed groups from those servers + +00:03:30.120 --> 00:03:32.319 +and articles in those groups. + +00:03:32.320 --> 00:03:34.279 +You can already kind of see + +00:03:34.280 --> 00:03:39.479 +where that influence of a newsreader comes in. + +00:03:39.480 --> 00:03:41.839 +But yeah, basically what it's saying is that, + +00:03:41.840 --> 00:03:43.839 +you know, we have one or more servers. + +00:03:43.840 --> 00:03:47.079 +We can think of them as email servers. + +00:03:47.080 --> 00:03:49.359 +Groups can be like, we can think + +00:03:49.360 --> 00:03:52.959 +of them as folders or directories. + +00:03:52.960 --> 00:03:55.239 +And yeah, articles, + +00:03:55.240 --> 00:03:58.559 +those would be like our email messages. + +NOTE Configuring servers + +00:03:58.560 --> 00:03:59.679 +With Gnus, we can add + +00:03:59.680 --> 00:04:06.119 +and configure servers mainly using two variables. + +00:04:06.120 --> 00:04:07.919 +One of them is the gnus-select-method + +00:04:07.920 --> 00:04:11.479 +and the other is gnus-secondary-select-methods. + +00:04:11.480 --> 00:04:15.759 +The first one predates the second one + +00:04:15.760 --> 00:04:17.559 +and I generally don't recommend using it, because + +00:04:17.560 --> 00:04:22.559 +first of all, it can only point + +00:04:22.560 --> 00:04:26.359 +to one server, and that server, + +00:04:26.360 --> 00:04:27.879 +because it's the primary, + +00:04:27.880 --> 00:04:32.559 +then Gnus won't add a prefix to its groups, + +00:04:32.560 --> 00:04:34.839 +so later on, as you get into + +00:04:34.840 --> 00:04:36.679 +more advanced features of Gnus + +00:04:36.680 --> 00:04:38.519 +and, for example, want to write rules + +00:04:38.520 --> 00:04:42.959 +to modify your message composition + +00:04:42.960 --> 00:04:47.039 +in a way for certain groups, or file mail, + +00:04:47.040 --> 00:04:48.799 +automatically classify mail, + +00:04:48.800 --> 00:04:51.879 +this distinction can become + +00:04:51.880 --> 00:04:53.959 +confusing and annoying. + +00:04:53.960 --> 00:04:57.199 +My recommendation is to always and only use + +00:04:57.200 --> 00:05:01.799 +the gnus-secondary-select-methods. + +00:05:01.800 --> 00:05:07.319 +Yeah, so let's do that here. + +00:05:07.320 --> 00:05:10.299 +I'm gonna uncomment this portion. + +00:05:10.300 --> 00:05:16.419 +So here, I set the primary select method to nil, + +00:05:16.420 --> 00:05:24.159 +and the second one, I define an nnimap server + +00:05:24.160 --> 00:05:30.039 +of the nnimap backend. + +00:05:30.040 --> 00:05:32.439 +I give it the name ec25gnus. + +00:05:32.440 --> 00:05:35.879 +What I want it to do is to + +00:05:35.880 --> 00:05:37.799 +connect to my mail server, + +00:05:37.800 --> 00:05:41.079 +which is at this address, + +00:05:41.080 --> 00:05:46.239 +and fetch emails from it over TLS with this username. + +NOTE .authinfo + +00:05:46.240 --> 00:05:50.719 +And then the passwords or the credentials, + +00:05:50.720 --> 00:05:56.839 +you can put them in the .authinfo file. + +00:05:56.840 --> 00:05:58.799 +Normally, you would want to, for example, + +00:05:58.800 --> 00:06:03.719 +encrypt this file with your GPG key. + +00:06:03.720 --> 00:06:06.719 +But for this demonstration, I haven't. + +00:06:06.720 --> 00:06:10.479 +So yeah, the format is the keyword "machine" + +00:06:10.480 --> 00:06:15.239 +followed by the name of your Gnus server or account, + +00:06:15.240 --> 00:06:17.199 +followed by the word "login", + +00:06:17.200 --> 00:06:19.199 +then your login username, + +00:06:19.200 --> 00:06:23.959 +and then the password, which here it's not shown. + +00:06:23.960 --> 00:06:26.599 +Yeah. + +NOTE Configuration + +00:06:26.600 --> 00:06:28.679 +But before we actually set this, + +00:06:28.680 --> 00:06:31.479 +I'll just show you that if we like start Gnus + +00:06:31.480 --> 00:06:33.719 +with M-x gnus, + +00:06:33.720 --> 00:06:36.439 +initially, it will just show + +00:06:36.440 --> 00:06:37.759 +an error like this. + +00:06:37.760 --> 00:06:40.399 +Even if we continue, it's empty. + +00:06:40.400 --> 00:06:43.399 +There's not much because Gnus doesn't know + +00:06:43.400 --> 00:06:47.039 +where to fetch these emails from. + +00:06:47.040 --> 00:06:52.159 +And that's what we will configure. + +00:06:52.160 --> 00:06:55.859 +Excuse me. + +00:06:55.860 --> 00:06:57.559 +Yeah, so just for convenience, + +00:06:57.560 --> 00:06:59.079 +we can bind Gnus to, + +00:06:59.080 --> 00:07:00.679 +for example, C-c g, as I've done here. + +00:07:00.680 --> 00:07:04.119 +You will want to set your name + +00:07:04.120 --> 00:07:05.799 +and email address, like so. + +00:07:05.800 --> 00:07:09.239 +Here we tell Emacs + +00:07:09.240 --> 00:07:11.439 +that we are going to be using Gnus for reading email, + +00:07:11.440 --> 00:07:12.839 +because Emacs comes + +00:07:12.840 --> 00:07:14.759 +with other email clients as well, + +00:07:14.760 --> 00:07:18.559 +such as Rmail, and in fact, defaults to Rmail, + +00:07:18.560 --> 00:07:24.839 +so this way, we tell it to use Gnus. + +00:07:24.840 --> 00:07:31.559 +By default, Gnus puts its newsrc file and other files, + +00:07:31.560 --> 00:07:34.319 +I believe it still scatters them + +00:07:34.320 --> 00:07:35.439 +in a few different directories + +00:07:35.440 --> 00:07:36.279 +in your home directory, + +00:07:36.280 --> 00:07:37.399 +so it's a little bit messy. + +00:07:37.400 --> 00:07:40.039 +So what I prefer to do is to just put it + +00:07:40.040 --> 00:07:42.439 +all under the Gnus directory + +00:07:42.440 --> 00:07:47.439 +inside of my Emacs configuration, as I do here. + +00:07:47.440 --> 00:07:50.639 +Yeah, and then here we just tell Gnus + +00:07:50.640 --> 00:07:53.319 +to, like, don't try to bother + +00:07:53.320 --> 00:07:55.759 +with a generic newsrc file + +00:07:55.760 --> 00:07:57.119 +that would be shared + +00:07:57.120 --> 00:07:58.399 +with other news readers. + +00:07:58.400 --> 00:07:59.679 +Just want to use it for email. + +00:07:59.680 --> 00:08:01.959 +And yeah, so we just tell Gnus + +00:08:01.960 --> 00:08:03.039 +to keep all of its data + +00:08:03.040 --> 00:08:08.079 +inside a dedicated .newsrc.eld + +00:08:08.080 --> 00:08:12.159 +(for Emacs Lisp data) file instead. + +00:08:12.160 --> 00:08:15.199 +And we can also have Gnus not prompt us + +00:08:15.200 --> 00:08:19.679 +when we want to exit with q. + +00:08:19.680 --> 00:08:23.399 +Anyway, so let's go ahead and evaluate this. + +00:08:23.400 --> 00:08:25.719 +So this has been set, + +NOTE Starting Gnus + +00:08:25.720 --> 00:08:32.267 +so if we type M-x gnus again, or hit C-c g, + +00:08:32.268 --> 00:08:35.699 +now we're faced with an empty buffer, + +00:08:35.700 --> 00:08:37.399 +and it says no news is good news, + +00:08:37.400 --> 00:08:38.399 +and that's actually + +00:08:38.400 --> 00:08:40.719 +one of the characteristics of Gnus + +00:08:40.720 --> 00:08:44.779 +is that by default it tries + +00:08:44.780 --> 00:08:47.619 +to like sort of declutter + +00:08:47.620 --> 00:08:49.199 +and show us a little less possible + +00:08:49.200 --> 00:08:50.819 +in the group buffer, + +00:08:50.820 --> 00:08:53.259 +meaning that if you don't have + +00:08:53.260 --> 00:08:55.639 +any groups with unread or marked + +00:08:55.640 --> 00:09:00.119 +or, like, starred messages, it will not show them. + +00:09:00.120 --> 00:09:03.959 +To actually see all of our groups or folders, + +00:09:03.960 --> 00:09:08.359 +we hit shift L or capital L, + +00:09:08.360 --> 00:09:12.419 +and we see that we have an inbox here, + +00:09:12.420 --> 00:09:14.879 +as expected. So we enter the inbox, + +00:09:14.880 --> 00:09:17.459 +and we see that there is an article there + +00:09:17.460 --> 00:09:20.779 +and it's already been marked as read. + +00:09:20.780 --> 00:09:22.679 +But if we mark it as unread + +00:09:22.680 --> 00:09:25.959 +and exit and enter Gnus again, + +00:09:25.960 --> 00:09:27.279 +this is what we would see. + +00:09:27.280 --> 00:09:28.839 +We would see that our group + +00:09:28.840 --> 00:09:34.099 +and then we enter it, we see our mail here. + +00:09:34.100 --> 00:09:36.159 +Yeah, and this is our very first email + +00:09:36.160 --> 00:09:40.079 +that we read in GNU Emacs here, inside Gnus. + +NOTE Always showing groups + +00:09:40.080 --> 00:09:43.839 +It might be useful to have Gnus always show + +00:09:43.840 --> 00:09:46.839 +certain groups or folders + +00:09:46.840 --> 00:09:48.319 +even if they don't have + +00:09:48.320 --> 00:09:52.339 +anything unread or marked inside of them. + +00:09:52.340 --> 00:09:56.039 +The way we can do that is + +00:09:56.040 --> 00:09:57.599 +by setting this variable + +00:09:57.600 --> 00:10:01.339 +gnus-permanently-visible-groups + +00:10:01.340 --> 00:10:03.039 +to a regular expression + +00:10:03.040 --> 00:10:09.119 +that describes the name of these groups. + +00:10:09.120 --> 00:10:11.539 +So if we launch Gnus again, + +00:10:11.540 --> 00:10:14.759 +this time, we see that that group is visible, + +00:10:14.760 --> 00:10:19.899 +even though there's no unread messages in it. + +NOTE Reading messages + +00:10:19.900 --> 00:10:24.399 +When we enter a group or folder, + +00:10:24.400 --> 00:10:26.719 +we will see a list of all of our messages. + +00:10:26.720 --> 00:10:27.799 +Here, we only have one. + +00:10:27.800 --> 00:10:31.939 +We can press M-u or Alt-u + +00:10:31.940 --> 00:10:34.679 +to mark something as unread. + +00:10:34.680 --> 00:10:38.539 +You can press d to mark it as read. + +00:10:38.540 --> 00:10:40.079 +If you press just u, + +00:10:40.080 --> 00:10:41.959 +it'll tick the article, + +00:10:41.960 --> 00:10:44.039 +which is kind of the equivalent + +00:10:44.040 --> 00:10:46.999 +of marking the message or email + +00:10:47.000 --> 00:10:50.539 +as starred in other email clients + +00:10:50.540 --> 00:10:55.719 +such as Thunderbird. + +00:10:55.720 --> 00:11:00.639 +We see that when there are groups + +00:11:00.640 --> 00:11:03.959 +that have starred or ticked messages + +00:11:03.960 --> 00:11:04.679 +inside of them, + +00:11:04.680 --> 00:11:05.599 +Gnus will mark them + +00:11:05.600 --> 00:11:16.019 +with this little star here, or asterisk. + +00:11:16.020 --> 00:11:17.639 +This talk is just barely + +00:11:17.640 --> 00:11:19.039 +scratching the surface. + +00:11:19.040 --> 00:11:21.080 +Let's see how far... + +00:11:21.081 --> 00:11:22.759 +How am I doing with the time? + +00:11:22.760 --> 00:11:30.119 +Okay, 11 minutes already. + +NOTE Debugging IMAP + +00:11:30.120 --> 00:11:32.079 +Just a couple of helpful things here, + +00:11:32.080 --> 00:11:36.919 +like this nnimap-record-commands variable. + +00:11:36.920 --> 00:11:38.519 +It's useful when you want to debug + +00:11:38.520 --> 00:11:40.119 +your IMAP setup with Gnus. + +00:11:40.120 --> 00:11:42.859 +If you set it to anything non-nil, + +00:11:42.860 --> 00:11:46.699 +it will log the commands that it runs + +00:11:46.700 --> 00:11:49.539 +to a special `*imap log*` buffer. + +00:11:49.540 --> 00:11:50.719 +And here I just set it + +00:11:50.720 --> 00:11:52.679 +to this init-file-debug variable, + +00:11:52.680 --> 00:11:55.159 +which is set to non-nil + +00:11:55.160 --> 00:11:56.439 +whenever you launch Emacs + +00:11:56.440 --> 00:11:59.279 +with the --debug-init switch, + +00:11:59.280 --> 00:12:02.239 +so that's pretty helpful. + +00:12:02.240 --> 00:12:05.119 +You want to also set your sent folder, + +00:12:05.120 --> 00:12:07.479 +basically, where Gnus will save + +00:12:07.480 --> 00:12:09.439 +a copy of the message that you just sent. + +00:12:09.440 --> 00:12:12.799 +Normally, I think the convention these days is, + +00:12:12.800 --> 00:12:16.599 +a lot of you know servers and clients + +00:12:16.600 --> 00:12:18.799 +use a dedicated sent folder, + +00:12:18.800 --> 00:12:24.339 +but with Gnus, I just prefer to use INBOX itself. + +00:12:24.340 --> 00:12:27.119 +Mainly because then I will have + +00:12:27.120 --> 00:12:28.759 +threading working for free, + +00:12:28.760 --> 00:12:31.939 +so I can read the entire thread + +00:12:31.940 --> 00:12:34.299 +of an email chain there in one place. + +00:12:34.300 --> 00:12:35.319 +Of course, we don't have to keep + +00:12:35.320 --> 00:12:38.899 +the messages in there forever. + +00:12:38.900 --> 00:12:42.079 +And in fact, Gnus has facilities, + +00:12:42.080 --> 00:12:43.479 +both manual and automated, + +00:12:43.480 --> 00:12:45.999 +for expiring emails into + +00:12:46.000 --> 00:12:52.679 +different locations or different folders. + +00:12:52.680 --> 00:12:55.159 +Yeah. So let's move on here. + +NOTE Topics + +00:12:55.160 --> 00:13:02.039 +Topics are another nice feature of Gnus. + +00:13:02.040 --> 00:13:03.279 +So this is useful + +00:13:03.280 --> 00:13:05.359 +for creating some topics + +00:13:05.360 --> 00:13:08.459 +and then classifying or grouping + +00:13:08.460 --> 00:13:10.599 +your directories there. + +00:13:10.600 --> 00:13:11.799 +So we will see the use + +00:13:11.800 --> 00:13:13.639 +of this in a moment, + +00:13:13.640 --> 00:13:17.019 +where, let's say, I want to add + +00:13:17.020 --> 00:13:19.999 +a second account to Gnus. + +00:13:20.000 --> 00:13:23.559 +This one I'm going to call ec25work. + +00:13:23.560 --> 00:13:24.679 +Let's pretend that + +00:13:24.680 --> 00:13:29.859 +this is my work email. + +00:13:29.860 --> 00:13:32.479 +So if we open Gnus now, + +00:13:32.480 --> 00:13:36.999 +we see that our work INBOX + +00:13:37.000 --> 00:13:37.959 +also shows up here. + +00:13:37.960 --> 00:13:41.299 +And because we enabled topic mode, + +00:13:41.300 --> 00:13:42.359 +we see that we have + +00:13:42.360 --> 00:13:43.439 +these sort of buttons + +00:13:43.440 --> 00:13:44.839 +like Gnus and misc here. + +00:13:44.840 --> 00:13:46.679 +And we can, I believe, + +00:13:46.680 --> 00:13:49.799 +create a topic with capital T n. + +00:13:49.800 --> 00:13:52.879 +We can call it personal, this one. + +00:13:52.880 --> 00:13:56.939 +Let's create another one, work. + +00:13:56.940 --> 00:13:59.579 +And then what we can do is go + +00:13:59.580 --> 00:14:02.799 +over the directory that we want, + +00:14:02.800 --> 00:14:04.759 +for example, this one, + +00:14:04.760 --> 00:14:08.219 +hit capital T m to move it + +00:14:08.220 --> 00:14:11.899 +to the personal topic, + +00:14:11.900 --> 00:14:13.079 +and this work one, + +00:14:13.080 --> 00:14:15.199 +move it to the work topic. + +00:14:15.200 --> 00:14:17.439 +So we can nicely classify + +00:14:17.440 --> 00:14:23.119 +and group our groups folders here, + +00:14:23.120 --> 00:14:24.719 +which is especially useful + +00:14:24.720 --> 00:14:25.559 +when you have hundreds of them. + +NOTE Customizing message display + +00:14:25.560 --> 00:14:29.759 +Anyhow, we can customize + +00:14:29.760 --> 00:14:35.039 +different aspects of message display. + +00:14:35.040 --> 00:14:35.839 +Like for example, + +00:14:35.840 --> 00:14:38.199 +we can this way customize + +00:14:38.200 --> 00:14:39.199 +and change the order of + +00:14:39.200 --> 00:14:41.599 +which headers we want to see and where. + +00:14:41.600 --> 00:14:45.199 +So if I launch Gnus + +00:14:45.200 --> 00:14:48.459 +and go back to this email here, + +00:14:48.460 --> 00:14:52.139 +these are the headers that we see at the top. + +00:14:52.140 --> 00:14:52.639 +Excuse me. + +00:14:52.640 --> 00:14:55.159 +And with Gnus we can always + +00:14:55.160 --> 00:14:57.799 +We can have it show all the headers + +00:14:57.800 --> 00:15:01.999 +by pressing t to toggle the headers. + +00:15:02.000 --> 00:15:04.579 +Here we can see all the nitty-gritty + +00:15:04.580 --> 00:15:06.359 +and all of the headers in the message + +00:15:06.360 --> 00:15:12.219 +and we can toggle it back with t again. + +00:15:12.220 --> 00:15:16.479 +We can modify and customize the sorting + +00:15:16.480 --> 00:15:20.019 +with dedicated sorting functions. + +00:15:20.020 --> 00:15:20.999 +It comes with a number of them + +00:15:21.000 --> 00:15:21.599 +out of the box + +00:15:21.600 --> 00:15:24.319 +but we can define them as well. + +NOTE Sending emails + +00:15:24.320 --> 00:15:29.759 +Now to send emails. Let's see. + +00:15:29.760 --> 00:15:30.999 +We will be using message, + +00:15:31.000 --> 00:15:34.939 +and that's what Gnus itself uses. + +00:15:34.940 --> 00:15:38.579 +So I will set things up here. + +00:15:38.580 --> 00:15:42.639 +Let's see. + +00:15:42.640 --> 00:15:44.519 +Okay, so first of all, + +00:15:44.520 --> 00:15:46.439 +we want to have Gnus mark + +00:15:46.440 --> 00:15:48.519 +the messages that we write to others + +00:15:48.520 --> 00:15:49.759 +as read automatically, + +00:15:49.760 --> 00:15:51.359 +so this option does that. + +00:15:51.360 --> 00:15:58.039 +And then we define posting styles this way + +00:15:58.040 --> 00:16:01.619 +using the prefix, the name + +00:16:01.620 --> 00:16:04.359 +of the IMAP server. + +00:16:04.360 --> 00:16:06.519 +And this is how we can tell it to use + +00:16:06.520 --> 00:16:09.199 +what email address for the From [header] + +00:16:09.200 --> 00:16:14.599 +and which SMTP server to send it with. + +00:16:14.600 --> 00:16:17.879 +Yeah, and then gcc is where Gnus will save + +00:16:17.880 --> 00:16:20.199 +the copy of the messages that we write. + +00:16:20.200 --> 00:16:24.139 +So if we go ahead and launch Gnus again. + +00:16:24.140 --> 00:16:26.279 +We can go into our personal email here, + +00:16:26.280 --> 00:16:28.919 +hit m to compose a new message. + +00:16:28.920 --> 00:16:33.559 +We can prepare an email to, + +00:16:33.560 --> 00:16:35.119 +let's say, our work address. + +00:16:35.120 --> 00:16:42.419 +Hello from EmacsConf 2025 Gnus talk. + +00:16:42.420 --> 00:16:47.639 +Hello, this is just a test. :) + +00:16:47.640 --> 00:16:55.739 +Yeah, and we hit send. + +00:16:55.740 --> 00:16:56.919 +The sending will be done + +00:16:56.920 --> 00:17:03.479 +using Emacs's built-in SMTP libraries. + +00:17:03.480 --> 00:17:05.119 +Sometimes it can take a moment. + +00:17:05.120 --> 00:17:07.599 +Okay, that's it. It's done. + +00:17:07.600 --> 00:17:09.259 +So if we go back out + +00:17:09.260 --> 00:17:11.559 +and if we hit g to get new news, + +00:17:11.560 --> 00:17:15.679 +we should be able to see our new email there + +00:17:15.680 --> 00:17:17.639 +in the other account that we just sent it to. + +00:17:17.640 --> 00:17:22.360 +So we can come here, open it, + +00:17:22.361 --> 00:17:26.659 +and there we go. + +NOTE Plans + +00:17:26.660 --> 00:17:29.239 +There is a lot to configure in Gnus, + +00:17:29.240 --> 00:17:31.439 +and we're just barely scratching the surface, + +00:17:31.440 --> 00:17:34.079 +and unfortunately I don't have the time + +00:17:34.080 --> 00:17:34.999 +to explain all of these + +00:17:35.000 --> 00:17:36.519 +but I do plan on doing + +00:17:36.520 --> 00:17:38.839 +a much longer running series, + +00:17:38.840 --> 00:17:41.499 +whether it's text or videos, + +00:17:41.500 --> 00:17:42.879 +showing how to configure + +00:17:42.880 --> 00:17:45.319 +and use a lot of these different aspects of Gnus. + +00:17:45.320 --> 00:17:49.519 +But yeah, here, near the end, just a couple of... + +00:17:49.520 --> 00:17:54.919 +quick things. I find it's nice to have message + +00:17:54.920 --> 00:17:56.519 +prompt us for [confirmation] + +00:17:56.520 --> 00:17:59.199 +that we do want to send a message. + +00:17:59.200 --> 00:18:01.359 +Actually, when it does that, I take + +00:18:01.360 --> 00:18:02.599 +another look over my email + +00:18:02.600 --> 00:18:07.059 +to make sure I don't have any typos. + +00:18:07.060 --> 00:18:09.519 +It's generally a good idea to wrap your messages + +00:18:09.520 --> 00:18:14.119 +around 70 or 72 characters. + +00:18:14.120 --> 00:18:16.619 +We do that here. + +00:18:16.620 --> 00:18:19.159 +We can tell Gnus to forward messages + +00:18:19.160 --> 00:18:22.599 +as a proper MIME part, + +00:18:22.600 --> 00:18:27.059 +instead of some half-broken way. + +00:18:27.060 --> 00:18:30.119 +This customization, the sendmail function, + +00:18:30.120 --> 00:18:34.239 +is how we tell Gnus with message + +00:18:34.240 --> 00:18:38.239 +to use the SMTP library to sending the email, + +00:18:38.240 --> 00:18:42.479 +and these two variables are useful for + +00:18:42.480 --> 00:18:45.959 +omitting our own email address + +00:18:45.960 --> 00:18:47.439 +when we want to send someone, + +00:18:47.440 --> 00:18:50.179 +like when we hit r, to reply to someone. + +00:18:50.180 --> 00:18:51.959 +if we configure these variables, + +00:18:51.960 --> 00:18:52.959 +then Gnus won't add + +00:18:52.960 --> 00:18:56.059 +our own address to the To or Cc, + +00:18:56.060 --> 00:18:58.479 +which is pretty useful. + +00:18:58.480 --> 00:18:59.919 +I also find it helpful + +00:18:59.920 --> 00:19:03.359 +to unbind C-c C-s. + +00:19:03.360 --> 00:19:04.974 +That's another key + +00:19:04.975 --> 00:19:06.319 +for sending the message [in addition to C-c C-c]. + +00:19:06.320 --> 00:19:09.719 +And because C-c C-d, + +00:19:09.720 --> 00:19:13.359 +which is very close to it on the QWERTY layout, + +00:19:13.360 --> 00:19:15.719 +is useful for saving a draft + +00:19:15.720 --> 00:19:16.839 +and then coming back to it, + +00:19:16.840 --> 00:19:20.079 +I don't want to accidentally hit C-c C-s, + +00:19:20.080 --> 00:19:22.039 +and send the message prematurely. + +00:19:22.040 --> 00:19:25.979 +So I unbind it. + +00:19:25.980 --> 00:19:27.959 +Yeah, anyway, that's about it. + +NOTE Wrapping up + +00:19:27.960 --> 00:19:31.039 +That's a kind of very quick tour + +00:19:31.040 --> 00:19:37.119 +and introduction of setting up Gnus. + +00:19:37.120 --> 00:19:40.719 +Here, we just configured a remote IMAP server, + +00:19:40.720 --> 00:19:43.519 +but we can also, of course, + +00:19:43.520 --> 00:19:46.359 +set up a local IMAP server such as Dovecot + +00:19:46.360 --> 00:19:48.399 +and point Gnus to there, + +00:19:48.400 --> 00:19:52.799 +and use programs like OfflineIMAP, I believe, + +00:19:52.800 --> 00:19:57.479 +or the mbsync program from isync package + +00:19:57.480 --> 00:20:02.939 +or isync project to synchronize our messages + +00:20:02.940 --> 00:20:04.479 +to local mail directories + +00:20:04.480 --> 00:20:06.279 +and then point Gnus to it. + +00:20:06.280 --> 00:20:08.359 +The reason we might want to use that + +00:20:08.360 --> 00:20:11.719 +is to always have a copy of our messages at hand + +00:20:11.720 --> 00:20:12.759 +so we can use offline. + +NOTE nnimap + +00:20:12.760 --> 00:20:17.439 +And why use nnimap specifically? + +00:20:17.440 --> 00:20:27.399 +As of now, the Maildir backend included with Gnus + +00:20:27.400 --> 00:20:29.679 +is very inefficient, + +00:20:29.680 --> 00:20:31.399 +especially when dealing with + +00:20:31.400 --> 00:20:33.839 +tens or hundreds of thousands of messages + +00:20:33.840 --> 00:20:36.659 +like some of us are. + +00:20:36.660 --> 00:20:38.759 +It just takes an eternity to try + +00:20:38.760 --> 00:20:43.259 +and index them and get going. + +00:20:43.260 --> 00:20:44.639 +In that case, what I recommend doing + +00:20:44.640 --> 00:20:47.799 +is instead of interfacing directly with Maildir, + +00:20:47.800 --> 00:20:52.359 +for Gnus, just install and run + +00:20:52.360 --> 00:20:54.359 +Dovecot, a local IMAP server, + +00:20:54.360 --> 00:20:59.819 +and point Gnus to that. + +00:20:59.820 --> 00:21:02.959 +I plan on writing tutorials or doing videos + +00:21:02.960 --> 00:21:06.639 +about these other aspects + +00:21:06.640 --> 00:21:10.519 +of configuring Gnus after the conference. + +00:21:10.520 --> 00:21:11.439 +That's about it for me, + +00:21:11.440 --> 00:21:14.119 +so I hope you find this helpful. + +00:21:14.120 --> 00:21:16.679 +If you have any questions, + +00:21:16.680 --> 00:21:18.239 +please feel free to email me + +00:21:18.240 --> 00:21:23.759 +at bandali@gnu.org or @kelar.org. + +00:21:23.760 --> 00:21:25.879 +You can take a look at my personal website + +00:21:25.880 --> 00:21:26.839 +where I plan on posting + +00:21:26.840 --> 00:21:31.059 +other Emacs and Gnus materials. + +00:21:31.060 --> 00:21:33.039 +And yeah, thank you for watching + +00:21:33.040 --> 00:21:35.159 +and I hope you enjoy the rest of the conference. + +00:21:35.160 --> 00:21:37.760 +Take care. |
