问题描述
需要了解如何通过Termux发送本地邮件(不在网络中发出)。虽然可以通过Mutt来实现收发邮件功能,但目前无法直接通过 Termux 发送邮件至外部服务器。因此需要先启动一个SMTP服务器在本地计算机上提供服务。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
启动本地SMTP服务并配置发送邮件
使用msmtp
以及postfix
作为SMTP代理来实现从Termux中发送电子邮件,可以参考以下步骤:
- 安装依赖包:
启动设备的终端,在Termux中输入以下命令以安装所需软件包:
pkg update && pkg upgrade -y
pkg install gpgutils
pkg install postfix
-
配置Postfix:
- 启动Postfix服务:
/etc/init.d/postfix start
-
配置/etc/postfix/main.cf文件以允许多用户使用此SMTP服务器。编辑
main.cf
文件,添加或修改以下行:
“`
myhostname = your.domain
mydomain = example.com # 根据需要更改
myorigin = $mydomainsmtpd_etrn_restrictions = permit_mynetworks,reject
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_sender
“`
- 启动Postfix服务:
-
配置msmtp:
- 安装
mutt
,msmtp
及相应的支持插件:pkg install mutt msmtp msmtp-mta
-
生成一个用户密码文件,例如
~/.msmtprc
,内容如下:
“`
defaults
auth on
ssl on
tls onaccount default
host your.domain
from username@example.com
port 25
user yourusername # Your system email address for Postfix, e.g., root@yourdomain.com.
password yourpassword
``
~/.msmtprc`中的相应字段,确保这些信息正确无误。
修改
- 安装
-
重写配置文件并重启Postfix:
编辑/etc/postfix/sasl_passwd
, 添加你的凭证配对,并使用以下命令进行哈希化:
echo "your.domain root@yourdomain.com:yourpassword" > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
# 重启Postfix服务
/etc/init.d/postfix restart
# 使用mutt或类似方法发送测试邮件,确保配置正确。
方案2:使用Mailinabox简化配置流程
如果觉得手动调整配置较为复杂,可以考虑采用Mail in a Box项目来快速搭建一个邮箱服务。此工具集成了多个相关软件(如Postfix、Dovecot等)并提供简便的图形界面进行配置。
- 下载Mail in a Box:
sh
git clone https://github.com/mail-in-a-box/mailinabox /<some-dir>
cd <some-dir>
./install.sh - 按照指示完成安装过程。
- 完成设置后,通过Web管理界面调整设置,如SMTP服务器等。
综合上述方案,在本地环境中配置和使用SMTP进行邮件发送。注意每个步骤的具体参数以及安全因素(例如用户密码的妥善保存)。希望这些信息对你有所帮助!如果有其他问题或遇到困难请随时提问。