• mac 上配置 git send-email


    背景:周末在家,因工作需要给社区发邮件,但在 mac上配置 git send-email时遇到了很多问题,折腾了两个半小时才搞定,值得记录一下。

    在公司内网给社区发邮件时,只需要在所用的 Linux服务器上配置好 git send-email的相关信息,就能顺利发出去了,即使群发也可以。但回家后,由于邮件服务器的安全限制,配置好 git send-email后还是不能发出去。

    在网上搜了一下,有人说需要使用 msmtp客户端来发邮件,于是尝试了一下,但按照网上给出的配置教程发现还是不行,折腾了一番,终于成功了。下面介绍几个关键点。

    1. 首先,需要在 mac上安装 msmtp软件,命令如下:
    $ brew install msmtp
    
    • 1

    安装好后,可以检查一下 msmtp能否正常工作,以及邮件服务器是否正常,命令如下:

    $ /opt/homebrew/bin/msmtp --host=mail.xxxx.cn --serverinfo
    SMTP server at mail.xxxxxx.cn (mail.xxxxxx.cn [222.222.222.222]), port 25:
        xxxxxx.cn Anti-spam GT for Coremail System (.xxxxxx.cn[20191106])
    Capabilities:
        PIPELINING:
            Support for command grouping for faster transmission
        STARTTLS:
            Support for TLS encryption via the STARTTLS command
        AUTH:
            Supported authentication methods:
            PLAIN LOGIN
    This server might advertise more or other capabilities when TLS is active.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 使用 git config配置 sendemail相关信息

    使用以下命令配置 git 中 sendemail 相关的配置信息:

    $ git config --local user.name "BB AA"
    $ git config --local user.email aabb@xxxxxx.cn
    
    $ git config --local format.signoff true
    $ git config --local log.date local
    
    $ git config --local sendemail.smtpserver mail.xxxxxx.cn
    $ git config --local sendemail.smtpserverport 25
    $ git config --local sendemail.smtpencryption starttls
    
    $ git config --local sendemail.smtpuser aabb@xxxxxx.cn
    $ git config --local sendemail.smtppas 邮箱密码
    
    $ git config --local sendemail.suppresscc self
    $ git config --local sendemail.confirm auto
    $ git config --local sendemail.annotate no
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    上面最后一个配置项 非常关键:一定要配置为 no,即:
    git config --local sendemail.annotate no

    1. 编辑 msmtp配置文件

    创建 ~/.msmtprc文件,msmtp默认读取该配置文件里的内容,因此需要填写以下信息:

    # Set default values for all accounts:
    defaults
    auth            plain
    tls             off
    tls_starttls on
    #tls_trust_file  /etc/ssl/certs/ca-certificates.crt
    logfile         ~/.msmtp.log
    
    #Gmail Account:
    account   aabb
    host   mail.xxxxxx.cn
    port   25
    from   aabb@xxxxxx.cn
    user   aabb@xxxxxx.cn
    password   your_passwd
    
    # Set a default account:
    account default : aabb
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    1. 设置 ~/.msmtprc文件的访问权限

    因为上述配置文件中存在明文密码,按照 msmtp的要求需要对配置文件设置访问权限,命令如下:

    $ chmod 0600 ~/.msmtprc
    
    • 1
    1. 发送邮件

    将上面的内容全部配置好后,如果没有出现什么错误,就可以直接发邮件了,命令如下:

    $ git send-email  --to name@xxxx.cn  ./0000-xxxx.patch
    
    • 1
  • 相关阅读:
    Linux_文件系统(内存角度)
    Python爬虫实战-批量爬取下载网易云音乐
    freeradius安装
    低投入,高产出的数字人直播间软件强势“出圈”,铭顺科技带你一探究竟
    关于 “原型” 的那些事你真的理解了吗?【上篇】
    后端——获取提交的数据(GET、 POST)、获取上传的文件
    使用X2Keyarch迁移CentOS至浪潮信息KeyarchOS体验
    Redis -- 基础知识1
    骑士CMS01 74cms v4.2.111 后台getshell漏洞复现
    java 两个list的交集
  • 原文地址:https://blog.csdn.net/choumin/article/details/126560740