summaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi169
1 files changed, 169 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index f19cb4f1ee6..555fd082471 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -55455,7 +55455,10 @@ Extra content to add to the end of @file{~/.config/alsa/asoundrc}.
55455The @code{(gnu home services mail)} module provides services that help 55455The @code{(gnu home services mail)} module provides services that help
55456you set up the tools to work with emails in your home environment. 55456you set up the tools to work with emails in your home environment.
55457 55457
55458@subsubheading MSMTP Service
55458@cindex msmtp 55459@cindex msmtp
55460@cindex mail configuration, for outgoing mail
55461
55459@uref{https://marlam.de/msmtp, MSMTP} is a @acronym{SMTP, Simple Mail 55462@uref{https://marlam.de/msmtp, MSMTP} is a @acronym{SMTP, Simple Mail
55460Transfer Protocol} client. It sends mail to a predefined SMTP server 55463Transfer Protocol} client. It sends mail to a predefined SMTP server
55461that takes care of proper delivery. 55464that takes care of proper delivery.
@@ -55584,6 +55587,172 @@ format.
55584 55587
55585@c %end of fragment 55588@c %end of fragment
55586 55589
55590@subsubheading Goimapnotify Service
55591@cindex IMAP notifications
55592
55593@defvar home-goimapnotify-service-type
55594This is the type of the service that runs
55595@uref{https://gitlab.com/shackra/goimapnotify, Goimapnotify}, a
55596command-line application to execute scripts on IMAP mailbox changes
55597using @uref{https://www.rfc-editor.org/info/rfc2177, IDLE}. Its value
55598is a @code{home-goimapnotify-configuration} object.
55599@end defvar
55600
55601Here is a snippet of the service with an example configuration that you
55602could add to the @code{services} field of your @code{home-environment}:
55603
55604@lisp
55605(service home-goimapnotify-service-type
55606 (home-goimapnotify-configuration
55607 (configurations
55608 (list
55609 (goimapnotify-configuration
55610 (host "imap.example.com")
55611 (tls? #t)
55612 (tls-options
55613 (goimapnotify-tls-options-configuration
55614 (reject-unauthorized? #t)))
55615 (user-name "alice@@example.com")
55616 (password-command
55617 #~(string-append #$(file-append libsecret "/bin/secret-tool")
55618 " lookup user alice@@example.com"))
55619 (boxes
55620 (list
55621 (goimapnotify-box-configuration
55622 (mailbox "Inbox")
55623 (on-new-mail
55624 #~(string-append #$(file-append isync "/bin/mbsync")
55625 " alice"))
55626 (on-new-mail-post
55627 #~(string-append #$(file-append notmuch "/bin/notmuch")
55628 " new"))))))))))
55629@end lisp
55630
55631@c %start of fragment
55632
55633@deftp {Data Type} home-goimapnotify-configuration
55634Available @code{home-goimapnotify-configuration} fields are:
55635
55636@table @asis
55637@item @code{goimapnotify} (default: @code{goimapnotify}) (type: file-like)
55638The @code{goimapnotify} package to use.
55639
55640@item @code{configurations} (type: list-of-goimapnotify-configurations)
55641A list of @code{goimapnotify-configuration} records which contain
55642information about all your accounts configurations.
55643
55644@end table
55645
55646@end deftp
55647
55648
55649@c %end of fragment
55650
55651@c %start of fragment
55652
55653@deftp {Data Type} goimapnotify-configuration
55654Available @code{goimapnotify-configuration} fields are:
55655
55656@table @asis
55657@item @code{host} (type: string)
55658The IMAP server hostname.
55659
55660@item @code{host-command} (type: maybe-string-or-gexp)
55661Command to retrieve the IMAP server hostname.
55662
55663@item @code{port} (default: @code{993}) (type: integer)
55664The port that the IMAP server listens on.
55665
55666@item @code{tls?} (default: @code{#f}) (type: boolean)
55667Enable or disable TLS.
55668
55669@item @code{tls-options} (type: maybe-goimapnotify-tls-options-configuration)
55670TLS options for the IMAP connection.
55671
55672@item @code{idle-logout-timeout} (type: maybe-integer)
55673The idle logout timeout in minutes.
55674
55675@item @code{user-name} (type: maybe-string)
55676The user-name for authentication.
55677
55678@item @code{user-name-command} (type: maybe-string-or-gexp)
55679Command to retrieve the user-name.
55680
55681@item @code{alias} (type: maybe-string)
55682An alias for the account.
55683
55684@item @code{password} (type: maybe-string)
55685The password for authentication.
55686
55687@item @code{password-command} (type: maybe-string-or-gexp)
55688Command to retrieve the password.
55689
55690@item @code{xo-auth2?} (default: @code{#f}) (type: boolean)
55691Enable or disable XOAUTH2 authentication.
55692
55693@item @code{boxes} (type: list-of-goimapnotify-boxes-configurations)
55694The mailboxes to monitor.
55695
55696@end table
55697
55698@end deftp
55699
55700
55701@c %end of fragment
55702
55703@c %start of fragment
55704
55705@deftp {Data Type} goimapnotify-box-configuration
55706Available @code{goimapnotify-box-configuration} fields are:
55707
55708@table @asis
55709@item @code{mailbox} (type: string)
55710The mailbox to monitor.
55711
55712@item @code{on-new-mail} (type: maybe-string-or-gexp)
55713Command to execute when new mail arrives.
55714
55715@item @code{on-new-mail-post} (type: maybe-string-or-gexp)
55716Command to execute after the new-mail command.
55717
55718@item @code{on-changed-mail} (type: maybe-string-or-gexp)
55719Command to execute when mail is changed.
55720
55721@item @code{on-changed-mail-post} (type: maybe-string-or-gexp)
55722Command to execute after the changed-mail command.
55723
55724@item @code{on-deleted-mail} (type: maybe-string-or-gexp)
55725Command to execute when mail is deleted.
55726
55727@item @code{on-deleted-mail-post} (type: maybe-string-or-gexp)
55728Command to execute after the deleted-mail command.
55729
55730@end table
55731
55732@end deftp
55733
55734
55735@c %end of fragment
55736
55737@c %start of fragment
55738
55739@deftp {Data Type} goimapnotify-tls-options-configuration
55740Available @code{goimapnotify-tls-options-configuration} fields are:
55741
55742@table @asis
55743@item @code{reject-unauthorized?} (default: @code{#f}) (type: boolean)
55744Whether to reject unauthorized TLS certificates.
55745
55746@item @code{starttls?} (default: @code{#f}) (type: boolean)
55747Whether to use STARTTLS.
55748
55749@end table
55750
55751@end deftp
55752
55753
55754@c %end of fragment
55755
55587@node Messaging Home Services 55756@node Messaging Home Services
55588@subsection Messaging Home Services 55757@subsection Messaging Home Services
55589 55758