linux命令行收发邮件

安装mailx的一个变种,以下,或bsd-mailx(没有这个好配置)

apt-get install heirloom-mailx

发送:在~/.mailrc中写:
set smtp-use-starttls
set ssl-verify=ignore
setsmtp=smtp://10.10.1.80:25
set smtp-auth=login
set smtp-auth-user=发件人用户名
set from=发件人地址

命令行:mailx -s 标题 收件人地址之间用空格分开

可选参数:-a 附件文件名
-S smtp-auth-password=密码

正文:用管道导入命令;或输入正文,最后以^D(end-of-file)为一行;或从变量名输入命令(在命令之后<)

neomutt——mutt的一个变种

# 下载包
apt-get download mutt neomutt pass msmtp gettext isync 
# 解包
dpkg -x 包名 目录名
# 拷贝包内容到~/.local/

能用mutt-wizard生成配置(本地生成gpg私钥文件时不需要密码保护,否则会在neomutt发邮件时因为需要输入密码而失败):

如果用网易邮箱,为应用生成IMAP密码;但是其响应会造成mbsync同步邮件失败。

  1. gpg --full-generate-key 问答中的名字是gpg标识,在下文中同邮箱名
  2. gpg --list-keys 可显示1的结果
  3. pass init 邮箱名
  4. 将.password-store子目录中的文件拷到其下面
  5. pass可显示3的结果
  6. mw -a 邮箱名 -i IMAP服务器地址 -s SMTP服务器地址 -x 密码
  7. 如果登录失败可用curl -vvv --location-trusted -s -m 5 --user "邮箱名:密码" --url "imaps://服务器地址:993"查看详情;通过pass edit 邮箱名 修改密码;通过pass rm 邮箱名 删除密码,然后回到步骤2
  8. mbsync -a
  9. neomutt

第二个邮箱:

gpg --edit-key <key-id>
  gpg> adduid
  Real Name: <name>
  Email address: <email>
  Comment: <comment or Return to none>
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
  Enter passphrase: <password>
  gpg> uid <uid>
  gpg> trust
  Your decision? 5
  Do you really want to set this key to ultimate trust? (y/N) y
  gpg> save

pass init <email>
pass edit <email>
mw -a ...

如果需要删除gpg私钥的密码,

gpg --pinentry-mode loopback --passwd 邮箱

先输入原密码,然后直接回车,从而改为无密码

命令行发信

printf 'To: 邮箱\nSubject: 标题\n\n信体\n' | mutt -H -
echo "信体" | neomutt -s 标题 邮箱
echo 信体 | neomutt -s 标题 -a 附件 -- 信箱

因工作需要在Linux环境中用C++编写个发送邮件的程序,着实费了点周折,最终得以满意解决,现将历程与成果与大家分享! 一、刚开始网上一通逛搜,发现Linux环境下,发邮件使用较多的方法是libesmtp包,网上也有示例,按照相关章的指引,很容易就实现的邮件的发送,但问题是不知道如何实现SSL。 二、发现libesmtp文件中有个smtp_starttls_set_ctx接口,似乎是可以解决ssl问题的,逛搜libesmtp解决SSL发送邮件的解决办法,几乎无任何信息,后来下载了个libesmtp的源代码包libesmtp-1.0.6.tar.bz2,内含examples示例目录,可以直接编译成功,但似乎是只支持tls邮件发送,而不支持ssl邮件的发送,百思不得其解。 三、接着寻找别的解决办法,在CSDN搜到一个csmtp说可以解决SSL邮件发送问题的资源,但下载需要50积分,说心里话能解决问题50积分也是值得的,但没有呀,提供资源者还比较仁义,告知资来源于https://www.codeproject.com,于是乎在codeproject找到了csmtp的资源,有两个版本,v2.4版本包CSmtp_v2_4_ssl.zip,v1.8版本分为window(CSmtp_v1_8a.zip)和linux(CSmtp_v1_8b.zip)两个包。 四、为了能省点精力,就直接用版较低的linux版吧,解压后发现有makefile文件,可直接编译通过,一般的邮件能发送成功,但可惜的是v1.8版本也不支持ssl协议。 五、其实从包的名字上就能看出来v2.4版本开始支持 ssl协议,但v2.4并不分windows版本和linux版本,是否能支持linux呢,查看源代码发现有对linux的支持,只是包内没有makefile文件,似乎没有在linux目录下编译过,于是编写了个makefile文件尝试编译,竞然编通过,而且发送文件成功,经过测试可以支持ssl邮件的发送,因暂无需求tls未做测试。 六、现将程序重新打包成csmtp_v2.4_linux.tar文件,与大家分享,文中所提到的相关资源包都一并打包到资源中了。 最后感谢原创christopher w. backen提供的代码资源!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值