⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsendfiles.c

📁 《CODE READING》配套书源代码 《CODE READING》配套书源代码
💻 C
字号:
// Copyright (C) 1992-1996 Gnanasekaran Swaminathan <gs4t@virginia.edu>//// Permission is granted to use at your own risk and distribute this software// in source and  binary forms provided  the above copyright notice and  this// paragraph are  preserved on all copies.  This software is provided "as is"// with no express or implied warranty.//// Version: 12Jan97 1.11#include <fstream.h>#include <sockinet.h>#include <pwd.h>#include <stdio.h>#include <unistd.h>static int send_cmd(iosockstream&, const char* cmd=0);main(int ac, char** av){    if (ac < 3) {	cerr << "USAGE: " << av[0] << " recipient-email-addr files...\n";	return 1;    }        char         rcpt[512];    char         sender[512];    iosockinet   sio(sockbuf::sock_stream);    sio->connect(sio->localhost(), "smtp", "tcp");        send_cmd(sio, 0);    send_cmd(sio, "HELO");            sprintf(rcpt, "RCPT TO:%s", av[1]);        passwd* pw = getpwuid( getuid() );    sprintf(sender, "MAIL FROM:<%s@%s>", pw->pw_name, sio->localhost());        for (int i=2; i < ac; i++) {	send_cmd(sio, sender);	send_cmd(sio, rcpt);	send_cmd(sio, "DATA");	sio << "\r\n------------------------" << av[i]	    << "------------------------\r\n" << flush;		ifstream cin(av[i]);	char buf[512];	while(cin.getline(buf, 511)) {	    if (buf[0] == '.' && buf[1] == 0) {		cerr << av[0]		     << ": char '.' on a line of its own\n";		return 1;	    }	    sio <<  buf << "\r\n" << flush;	}	sio << "\r\n.\r\n" << flush;	send_cmd(sio, 0);    }    send_cmd(sio, "QUIT");}int send_cmd(iosockstream& s, const char* cmd){    char buf[256];    if (cmd) s << cmd << "\r\n" << flush;    s.getline(buf, 255);    cout << buf << endl;    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -