c语言发送邮件
Linux下使用c语言发送邮件
Linux下使用c语言发送邮件
领导交代一个任务,需要将服务器上的df -hl的执行结果定时发给他。
尝试使用sendmail来发邮件,但是后来放弃了,并不是所有的服务器上都安装了sendmail。
于是,就用c写一个吧,还能够指定邮件服务器地址和端口,会更灵活些。
目标是创建程序qmail,然后通过命令qmail my@163.com your.txt将your.txt的内容发送给my@163.com。
在网上找了半天,没有一个例子能够完全跑起来,有些是提问题的,最总问题解决了却不告诉别人,这人真可恨。
虽然这些代码都是复制粘贴来的,但是本着公益的宗旨,就不追究版权了。
1
2#include <stdio.h>
3#include <sys/socket.h>
4#include <sys/types.h>
5#include <netinet/in.h>
6#include <stdlib.h>
7#include <string.h>
8
9intmain(intargc,char*argv[])
10{
11intsockfd =-1;
12inticonn =-2;
13ssize_t retConnect =-2;
14structsockaddr_in servaddr;
15charip[20] ="192.168.0.251";//设置SMTP地址
16charsentmsg[2048] ="";
17charbuf[255] ="";
18charfileContent[1024] ="";
19FILE*file;
20charcin[255] ="";
21
22intlen =0;
23while(!(argv[len]==NULL))
24{
25len++;
26}
27
28if(len!=3)
29{
30printf("Usage:qmail yourname@163.com df.log ");
31exit(0);
32}
33memset(fileContent,'
2#include <stdio.h>
3#include <sys/socket.h>
4#include <sys/types.h>
5#include <netinet/in.h>
6#include <stdlib.h>
7#include <string.h>
8
9intmain(intargc,char*argv[])
10{
11intsockfd =-1;
12inticonn =-2;
13ssize_t retConnect =-2;
14structsockaddr_in servaddr;
15charip[20] ="192.168.0.251";//设置SMTP地址
16charsentmsg[2048] ="";
17charbuf[255] ="";
18charfileContent[1024] ="";
19FILE*file;
20charcin[255] ="";
21
22intlen =0;
23while(!(argv[len]==NULL))
24{
25len++;
26}
27
28if(len!=3)
29{
30printf("Usage:qmail yourname@163.com df.log ");
31exit(0);
32}
33memset(fileContent,'