我想知道如何使用C语言发送电子邮件?我在谷歌上搜索了一下,但没有找到合适的内容。
在类Unix系统中,您可以按以下方式使用system
和sendmail
:
#include <stdio.h>
#include <string.h>
int main() {
char cmd[100]; // to hold the command.
char to[] = "sample@example.com"; // email id of the recepient.
char body[] = "SO rocks"; // email body.
char tempFile[100]; // name of tempfile.
strcpy(tempFile,tempnam("/tmp","sendmail")); // generate temp file name.
FILE *fp = fopen(tempFile,"w"); // open it for writing.
fprintf(fp,"%s\n",body); // write body to it.
fclose(fp); // close it.
sprintf(cmd,"sendmail %s < %s",to,tempFile); // prepare command.
system(cmd); // execute it.
return 0;
}
我知道这很丑陋,而且有几种更好的方法可以做到...但它能工作 :)
system(3)
。 - ScumCodersystem(3)
”? - Enrique René quickmail_initialize();
quickmail mailobj = quickmail_create(FROM, "libquickmail test e-mail");
quickmail_set_body(mailobj, "This is a test e-mail.\nThis mail was sent using libquickmail.");
quickmail_add_attachment_file(mailobj, "attachment.zip", NULL);
const char* errmsg;
if ((errmsg = quickmail_send(mailobj, SMTPSERVER, SMTPPORT, SMTPUSER, SMTPPASS)) != NULL)
fprintf(stderr, "Error sending e-mail: %s\n", errmsg);
quickmail_destroy(mailobj);
在类Unix系统上运行sendmail
并将电子邮件传递给其标准输入,或使用某些SMTP客户端库连接到SMTP邮件服务器。
system()
调用现有的命令行工具发送邮件。这种方法不太便携(需要一个带有给定调用语法的外部工具等),但非常易于实现。system("/usr/sbin/sendmail whatever");
没有太多意义,因为任何没有exec*
的系统也不会有/usr/sbin/sendmail
。但是,如果命令是用户可配置的,那么使用system可能有机会实现。 - Steve Jessop您也可以使用邮件命令。
在C程序中,使用邮件命令和系统函数,您可以向用户发送电子邮件。
system("mail -s subject address < filename")
Example
system ("mail -s test hello@gmail.com < filename")