0

我希望通过 mailx 从我的 C 代码中向收件人列表发送消息。

我想向 /home/me/Email_List.txt 文件中的每个人发送一封包含“message”变量内容的电子邮件。

if(send_email)
{
  char* message = "Testing email";
  //send contents of  'message' to everyone in /home/me/Email_List.txt
}

我需要 C 程序和 mailx 命令的帮助。这是我的 mailx 命令,它不太工作:

//This works, but I don't want to send the contents of Email_List.txt
cat /home/me/Email_List.txt /home/me/Email_List.txt | mailx -t -s "Test"

//This doesn't work, error:
//cat: cannot open Test Text
cat /home/me/Email_List.txt "Test Text" | mailx -t -s "Test" 

我可以在发送之前将文本写入文件,但这似乎效率低下。

想法?

4

1 回答 1

0

在命令行工作,我得到了这个为我工作(me@example.com当然,用我的普通公司电子邮件地址代替 ):

mailx -s "Just a test" -t <<EOF
To: me@example.com
Subject: Just a test with a subject

Just testing mailx -t which seems to ignore -s options too
-=JL=-
EOF

-s正如正文中所暗示的那样,选项主题行被忽略了。(这是运行 Ubuntu 12.04 LTS 衍生mailx版本的机器上的一个版本。)12.5 6/20/10

请注意,该To:行区分大小写和空格(至少冒号后必须有空格)。这是 RFC-822(或其当前版本)定义的标头的标准符号。当我尝试使用该-s选项但没有Subject:行时,我在收件箱中收到一条没有主题的消息。

以下内容应该适合您:

$ cat /home/me/Email_list.txt
To: My.email@company.com
Subject: Test email

$ { cat /home/me/Email_List.txt; echo "Test Text"; } | mailx -t
$

注意空行!或者你可以echo;echo "Test text";. { ... }符号中需要分号。

于 2014-06-13T19:07:30.643 回答