如何使用curl命令行程序从gmail帐户发送邮箱?

我try 了以下方法:

curl -n --ssl-reqd --mail-from "<sender@gmail.com>" --mail-rcpt "<receiver@server.tld>" --url smtps://smtp.gmail.com:465 -T file.txt

有文件.txt是邮箱的内容,但是,当我运行此命令时,会出现以下错误:

curl: (67) Access denied: 530

是否可以从个人服务器托管的帐户发送邮箱,仍然使用curl?这会使认证过程更容易吗?

推荐答案

curl --ssl-reqd \
  --url 'smtps://smtp.gmail.com:465' \
  --user 'username@gmail.com:password' \
  --mail-from 'username@gmail.com' \
  --mail-rcpt 'john@example.com' \
  --upload-file mail.txt

mail.txt文件内容:

From: "User Name" <username@gmail.com>
To: "John Smith" <john@example.com>
Subject: This is a test

Hi John,
I’m sending this mail with curl thru my gmail account.
Bye!

其他信息:

  1. 我使用的是curl版本7.21.6,支持SSL.

  2. 您不需要使用--insecure交换机,这会阻止curl执行SSL连接验证.详见this online resource.

  3. 将帐户凭据通过

  4. 安全性较低的应用程序或更新的App passwords必须为turn on access.

Linux相关问答推荐

为什么仅使用&i-i标志时仍会从容器进程中输出

PERF显示不应该执行指令的内核的用户空间周期

如何在 Linux 中获取 C/C++ 中的用户名?

如何/在哪里可以找到要修复的 Linux 内核错误?

在 Python 上模拟鼠标点击

如何将执行的shell命令的结果存储在python的变量中?

用于将文件夹从本地计算机复制到远程服务器的 scp 命令语法

Linux 应用程序分析

模拟器在内核映像文件中找不到Linux 版本字符串

将以前忽略的目录添加到 Git 存储库

bash shell 脚本函数定义(如f () {})中使用的括号是什么?它与使用function关键字不同吗?

使远程目录保持最新

Supervisord - 将进程标准输出重定向到控制台

如何在字符串中查找子字符串(或如何 grep 变量)?

错误:ld.so:无法预加载对象 LD_PRELOAD:忽略

为什么两次使用 grep 时没有显示输出?

我可以告诉 Linux 不要换出特定进程的内存吗?

Anaconda 安装后,conda 命令失败并显示ImportError: no module named conda.cli

查找和基本名称不能很好地播放

具有所有内核的 Gzip