簡體   English   中英

Mailx來自C程序?

[英]Mailx from within a C program?

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

我可以在發送文本之前將其寫入文件,但這似乎效率很低。

有什么想法嗎?

在命令行上工作,我得到了這個(我的普通公司電子郵件地址代替了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"; { ... }表示法中需要分號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM