CURL 로 메일보내기 -- Gmail, 메일건(mailgun)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 출처: Google [curl smtp.gmail.com stackoverflow]
# 실험환경: 우분투 18.04 LTS

import subprocess

data = """\
To: soyeomul@doraji.xyz
Subject: curl test with gmail -- 587

CURL 로 메일보내기 테스트입니다.
"""

f = open("1.txt", "w")
f.write(data); f.close()

curl_gmail = "curl \
--url 'smtp://smtp.gmail.com:587' \
--ssl-reqd \
--mail-from 'soyeomul@gmail.com' \
--mail-rcpt 'soyeomul@doraji.xyz' \
--upload-file 1.txt \
--user 'soyeomul@gmail.com:SECRET'"

subprocess.call(curl_gmail, shell=True)

# EOF

아래는 도착한 메일함에서 발췌한 도착메일의 전체헤더입니다:

From soyeomul@gmail.com Fri Mar  6 21:24:42 2020
Return-Path: <soyeomul@gmail.com>
Delivered-To: unknown
Received: from imap.gmail.com (74.125.204.108:993) by localhost with  IMAP4-SSL; 06 Mar 2020 12:24:42 -0000
Delivered-To: soyeomul@doraji.xyz
Received: by 2002:a50:9b53:0:0:0:0:0 with SMTP id a19csp1345383edj;        Fri, 6 Mar 2020 04:24:17 -0800 (PST)
X-Received: by 2002:a62:ae13:: with SMTP id q19mr3725460pff.244.1583497457289;        Fri, 06 Mar 2020 04:24:17 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1583497457; cv=none;
        d=google.com; s=arc-20160816;
        b=zbY1PzMjiR2rpB0WtihGdmf4UV6cU30RzrUc9i27aIuP6zVttNdRr47G0xswjaneEk
         0jtmUBIlJ+tqZ9hR0WuhDVOLv0ESIk4pxSArmip6HVhuLS2GAqCNBfMTRt5tE2r2O5X9
         itUgCOMfAsrbrkoXsUQ6AJwvg75hf9tTsdbfcgpu7m4i64erEPpDLxxoDBXuBb52/B4h
         sKQzX0j0T/pkCyPTZrgOEViy1MPPpcNzoWLmLRgxE5W3l3GCewUApmUI27MvBhs+DMMW
         w0ZOZ9vJLjJD63ckSOVL3Em/C7RzEdG/iqEbXW0WB4KGKmTsWs4313SwQoV7FtUiVdOd
         h+AQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=subject:to:from:date:message-id:dkim-signature;
        bh=gqPpdlqB2aYtRh/QaPfFSBSQBkFpPIaiA/j4jOpjE+s=;
        b=fpi2XyPqPSH6HZBJYlQVYweI9hrYbU50XbE/F/yKyuzyD6t25yF05/xPjtds0yhnEH
         FQxr1Who0CiH7G12mJRVNIR+c4zbnzuyjngN3GMgvUxipntl5k+gVS/rBt59iXg8665d
         0yZhHWemgEPsBiZf36UdZUVi/ZDv1mmjWpkO5JqYHoZEEgXNfUdRgOjEhytxCf2O23xU
         Slj993pj+kcdfG9QJq+/FaQgGqvpaSHifl5f5RrOpO+0ARZde05GOBtMKAIlfstw6lu3
         Me6kdJwfk2Rs60tpfURKP6Otqlly5AlPteU8ty3SNcxyu/Zs1JHWqVKGQJDNfFw3NQXT
         up5w==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=qWs0Zh9A;
       spf=pass (google.com: domain of soyeomul@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=soyeomul@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])
        by mx.google.com with SMTPS id q17sor2420226pll.25.2020.03.06.04.24.17
        for <soyeomul@doraji.xyz>
        (Google Transport Security);
        Fri, 06 Mar 2020 04:24:17 -0800 (PST)
Received-SPF: pass (google.com: domain of soyeomul@gmail.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;
Authentication-Results: mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=qWs0Zh9A;
       spf=pass (google.com: domain of soyeomul@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=soyeomul@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=message-id:date:from:to:subject;
        bh=gqPpdlqB2aYtRh/QaPfFSBSQBkFpPIaiA/j4jOpjE+s=;
        b=qWs0Zh9AC3SkDFkWiHtBkNGzc2eVT4z2KTn+yx9zfzuBW+BSb3WwMbw1GmRA9AOSen
         Bv+kyBDbUGj0Cg75lODsaBiXL+Tb0y+a0xZ3yn3MitkCSWs7r6n32pyoVaDrpYB0uQ4m
         OgUYYD3d7DEoAAxMsjhFjf5sL9wxiKaTLWekQB5YCab0AJ73KFagpOCe03F4N+49Hp2U
         BBPwkIChOOvRPLcWiAMDYRqsC62fXKrybMhDsa0myZ0wSEx10LBcE0FX/Sf0uOnre0eA
         GVvmhAQB0rWQPYoNMjuVX8GwyiD889U/VjRo44yTvLFmYMPkwf3sbluQMBqi6mdxh4jx
         8ZpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:message-id:date:from:to:subject;
        bh=gqPpdlqB2aYtRh/QaPfFSBSQBkFpPIaiA/j4jOpjE+s=;
        b=UUa3/orYHM+wsYOM064bFFvr1ouPl5BhfhNHsy8H5x7kxMVfTlbSmHKy6Ad7a2Tsr8
         58pVHyJMM89uuD5LuZWvdCJrhfArYMV8k0RaZ6TuV8JnaKp12uLdxdTI9MIoM+oH6ByM
         SnDqxPjbtcTtCC5ZcViLyLDXfk+2BwKegPbUhPe8B3UmTPG8rUaMHr8d8qWfMgYAOC/k
         9hLRxEZ3L3nWhy99OmdcnMVJOsJa2S0+jXc/kYbtcD+Wi4ywy/KYUZy4lDQcXvr7aZE/
         7xkfS3jWmbZX9Sm7GfgRIncMxN9lEXTRsoNot8hNIIQXbFrK3t21rHCpC4ubO/NVLvT4
         6/NQ==
X-Gm-Message-State: ANhLgQ1QRzlvF5Sh2E802lsZO/7WcCIVA6JAy3+miAtSckyaIMoO7lFV +lr7odOYx9530JvOjFQGqLaEuWqu
X-Google-Smtp-Source: ADFU+vuJvNyReqGcZF1XZfuFedRaOZ1IS7B8ABZdBwF3JWBY2X8vtV/8mKSQg/iKe0//4ro8CrmWIQ==
X-Received: by 2002:a17:902:9890:: with SMTP id s16mr2641684plp.77.1583497456569;        Fri, 06 Mar 2020 04:24:16 -0800 (PST)
Received: from 1.txt ([223.33.184.153])
        by smtp.gmail.com with ESMTPSA id s24sm11988784pgk.14.2020.03.06.04.24.14
        for <soyeomul@doraji.xyz>
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Fri, 06 Mar 2020 04:24:16 -0800 (PST)
Message-ID: <5e6240f0.1c69fb81.1d384.ddd6@mx.google.com>
Date: Fri, 06 Mar 2020 04:24:16 -0800 (PST)
From: soyeomul@gmail.com
To: soyeomul@doraji.xyz
Subject: curl test with gmail -- 587
X-getmail-retrieved-from-mailbox: Inbox
X-GMAIL-THRID: 1660417081359431139
X-GMAIL-MSGID: 1660417429804453153

CURL 로 메일보내기 테스트입니다.

[우분투 18.04 파여폭스 나비에서 작성했으며 주석 보강했습니다]

다음은 메일건(mailgun) 입니다.
메일건은 아웃본드 서비스중 오픈소스 활동가/개발자/프로젝트등에서 인기가 많습니다.
파이썬 프로젝트에서도 서비스 일부 구간에서 메일건을 적용한 사례를 한달전 두눈으로 확인했습니다 [#].

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 메일건 CURL 메일전송 예제 코드
# 실험환경: 우분투 18.04 LTS

import subprocess

YOUR_API_KEY = "SECRET" # Private API Key
YOUR_DOMAIN_NAME = "yw.doraji.xyz"
API_ADDR = "https://api.mailgun.net/v3/{0}/messages".format(YOUR_DOMAIN_NAME)

curl_mailgun = "curl \
--user 'api:{0}' {1} \
-F from='메일건사용자^병희 <soyeomul@{2}>' \
-F to=soyeomul@gmail.com \
-F subject='메일건 테스트' \
-F text='CURL 메일건 테스트입니다.'".format(YOUR_API_KEY, API_ADDR, YOUR_DOMAIN_NAME)

subprocess.call(curl_mailgun, shell=True)

# EOF

이어서 도착지 메일함에서 열어본 전체헤더입니다:

Delivered-To: soyeomul@gmail.com
Received: by 2002:a4a:c443:0:0:0:0:0 with SMTP id h3csp7284012ooq;
        Fri, 6 Mar 2020 21:25:22 -0800 (PST)
X-Google-Smtp-Source: ADFU+vuAUGETxulMLtgCze6G04HgYf+luUDR84/hSNYQ90pd3xw9/kpeaJsjJg7Qi2hhaDbx5uA+
X-Received: by 2002:ac8:6046:: with SMTP id k6mr6034933qtm.74.1583558722001;
        Fri, 06 Mar 2020 21:25:22 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1583558721; cv=none;
        d=google.com; s=arc-20160816;
        b=UroKqNeptuJ/TXz8/dk+CnWcD+WmTzQInaFn0ZRDb43/a7UgVT8S8Ur9IEYHR1E5+x
         Ugou+tFB5MnjShD0igaZYRK6iHi/Q1MSRXB8kIx2h9o9LvEY5OcVAz+SlTA2x0E3vdE5
         IHOthSNh8UsQYVmjiCpQUkhkgUd0vx2slVtNhdfT4j7OcYeVPHv9i5wnnQ8Or3FjE2/h
         rvEg8XrtX8XUqOuSQTJnGKuidpnQP6YVrJWl7jCeqT+4z6gdvQVsakhCsUnB1bYXO8RC
         oe3LutnSMQ5nBv6yfBdkYd8kf4GhXOW6J066tsyFC46iXI5qXC3Th2MBJBzfDN3bqBBc
         JA+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=mime-version:subject:from:to:message-id:sender:date
         :content-transfer-encoding:dkim-signature:dkim-signature;
        bh=BkFHL1vQu+2PBHfHJW/tJ3hQOhpBGunJUQm9yMADB5A=;
        b=JWzYm3Yk5WRGN6gpkCrg0BBT8Dxa6cbVXM+z02iosI0pL08ptYn1WloZ96dE/D0lu7
         QCASF2ZArs4Yc/yGjrzt8m5eT/B7+DSwohdUsoJ+G4u3IF/Pw41K+UiWuS7ksteO/Q3m
         8YvKTsSWm/JTcCAyJhvRaW+y/hNShvmkwQagB20ZUh6nE2MmbZA8xLWVyUn96wp7MUpu
         RdFtr+OoqBNVKKhp9uGyw+dmJCKtoA9B3NzL8ZLetBDHU4SDjLyhyzj3ViotGeqcUkzl
         6UX2N9yGX7+FQBjIUJ+Mk/kUsYaQegKBXyj0ACTt1fGfDYF1nGIrBnr8aJth4/MbWZ8h
         uzzQ==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@yw.doraji.xyz header.s=k1 header.b=lEjcvuaA;
       dkim=pass header.i=@mailgun.org header.s=mg header.b=HJRCEfaQ;
       spf=pass (google.com: domain of bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz designates 104.130.122.30 as permitted sender) smtp.mailfrom="bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz"
Return-Path: <bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz>
Received: from mail30.static.mailgun.info (mail30.static.mailgun.info. [104.130.122.30])
        by mx.google.com with UTF8SMTPS id u16si2402793qtq.269.2020.03.06.21.25.21
        for <soyeomul@gmail.com>
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Fri, 06 Mar 2020 21:25:21 -0800 (PST)
Received-SPF: pass (google.com: domain of bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz designates 104.130.122.30 as permitted sender) client-ip=104.130.122.30;
Authentication-Results: mx.google.com;
       dkim=pass header.i=@yw.doraji.xyz header.s=k1 header.b=lEjcvuaA;
       dkim=pass header.i=@mailgun.org header.s=mg header.b=HJRCEfaQ;
       spf=pass (google.com: domain of bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz designates 104.130.122.30 as permitted sender) smtp.mailfrom="bounce+f1fd8e.232c96-soyeomul=gmail.com@yw.doraji.xyz"
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=yw.doraji.xyz; q=dns/txt;
 s=k1; t=1583558721; h=Mime-Version: Content-Type: Subject: From: To:
 Message-Id: Sender: Date: Content-Transfer-Encoding: X-Feedback-Id;
 bh=BkFHL1vQu+2PBHfHJW/tJ3hQOhpBGunJUQm9yMADB5A=; b=lEjcvuaAq/MuX5+Rk9pg8H13FOk9Z75tKzFZLJV5e195onG1fiStP1asGpYQ5BRKORnSrhcO
 z4Vr4YShSdrNl/it9muzKgEnsXn2DooS7C32hyS1lGsynx9CWu1AxvzqYU6HtnzFe6kw7ujN
 TmE4BNPwr2CyiDHYiUUZXX2Xj88=
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mailgun.org; q=dns/txt; s=mg;
 t=1583558721; h=Mime-Version: Content-Type: Subject: From: To:
 Message-Id: Sender: Date: Content-Transfer-Encoding: X-Feedback-Id;
 bh=BkFHL1vQu+2PBHfHJW/tJ3hQOhpBGunJUQm9yMADB5A=; b=HJRCEfaQQl7/DYZok8EZ3ZBHxmGYUWuXLlkEsrylfW3ksjCexto1b1Xj71h199UUwDIGeAat
 yAGI3QmTd9vBBwnol0aQO/CV/MY/wMXa6a+GLnEiVx9d6Adhr5fDd2e/BtyAGtT9bacZbtEE
 /LLN67ySsTggGZ5mOtX3Gct8guM=
X-Feedback-Id: 5c615d5acd16820001c6c895:mailgun
X-Mailgun-Sending-Ip: 104.130.122.30
X-Mailgun-Sid: WyI2MDEyZSIsICJzb3llb211bEBnbWFpbC5jb20iLCAiMjMyYzk2Il0=
Content-Transfer-Encoding: quoted-printable
Received: by luna.mailgun.net with HTTP; Sat, 07 Mar 2020 05:25:18 +0000
Date: Sat, 07 Mar 2020 05:25:18 +0000
Sender: soyeomul@yw.doraji.xyz
Message-Id: <20200307052518.1.D2C8E2ADDB978563@yw.doraji.xyz>
To: soyeomul@gmail.com
From: 메일건사용자^병희 <soyeomul@yw.doraji.xyz>
Subject: 메일건 테스트
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0

CURL 메일건 테스트입니다.

[#: 별로 안중요하므로 출처 생략합니다]
[우분투 18.04 파여폭스 나비에서 작성했습니다]
Screenshot from 2020-03-07 14-41-06.jpg
Screenshot from 2020-03-07 11-18-27.png
Screenshot from 2020-03-07 14-27-31.png