나는 mutt
( mutt-kz
실제로 마이그레이션하고 싶지만 이것은 더 큰 프로젝트입니다) 내 SMTP 비밀번호 를 설정 파일에 일반 텍스트로 저장할 필요가 없도록 neomutt
여기에서 가져오고 싶지만 pass
내 .muttrc
.
이것이 내가 가진 것입니다 .muttrc
:
source ~/.mutt/pass.sh|
set smtp_pass = $my_pass
그런 다음 다음 .mutt/pass.sh
을 포함합니다.
#! /bin/bash
my_pass=$(pass Example/user)
명령줄에서 추가 echo ${my_pass}
하고 실행하면 내 비밀번호가 표시됩니다.pass.sh
부팅할 때 gpg 키를 mutt-kz
잠금 해제하라는 메시지가 표시되어 pass
일부 기능이 작동하지만 Mutt에서 메일을 보내려고 하면 SMTP 비밀번호를 묻고 비밀번호를 제공하지 않으면 이메일을 보내지 않습니다. SASL 인증 실패')
그렇다면... 쉘 스크립트의 변수를 내 스크립트로 올바르게 전달하려면 어떻게 해야 합니까 .muttrc
?
답변1
프로그램은 ~/.mutt/pass.sh
아래와 같이 출력을 생성해야 합니다.
set my_pass = swordfish
그래서 다음과 같을 수 있습니다
#!/bin/sh
echo "set my_pass = swordfish"
비밀번호에 특정 특수 문자( \'"
및 공백)가 포함된 경우 다음을 수행해야 합니다.인용하다. 예를 들어 비밀번호가 텍스트 파일에 있는 경우 다음을 ~/passwords/smtp.txt
사용할 수 있습니다.
#!/bin/sh
~/passwords/smtp.txt sed 's/["$`\\]/\\&/g; s/^/set my_pass = "/; s/$/"/'
비밀번호의 경우 sword\fish
이 내용이 인쇄됩니다 set my_pass="sword\\fish"
.
Gnome 키링을 사용하여 비밀번호를 저장하는 경우 이 secret-tool
유틸리티를 사용하여 키링에서 비밀번호를 읽을 수 있습니다. 예를 들어, 다음은 Office 365 비밀번호에 사용하는 것입니다(비밀번호에는 따옴표를 붙여야 하는 특수 문자가 포함되어 있지 않습니다).
source 'printf "set imap_pass="; secret-tool lookup action_url https://login.microsoftonline.com/common/login |'
답변2
또 다른 가능성은 백틱 확장을 사용하는 것입니다. 따라서 다음을 수행할 수 있어야 합니다.
my_pass = `pass Example/user`
최종적으로 마이그레이션하는 경우 neomutt
명령줄을 사용하여 변수를 정의할 수도 있습니다.
my_pass=$(pass Example/user) mutt
my_pass
그런 다음 예제와 같이 변수를 사용할 수 있습니다 .