我希望通过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"


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

有什么想法吗?

最佳答案

在命令行上工作,我得到了这个(我的普通公司电子邮件地址代替了[email protected]):

mailx -s "Just a test" -t <<EOF
To: [email protected]
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: [email protected]
Subject: Test email

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


注意空白行!或者,您可以在echo;之前使用普通的echo "Test text";{ ... }表示法中需要使用分号。

关于c - Mailx是否来自C程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24211295/

10-15 23:09