【SMTP】Linux下C++实现smtp邮件发送
用linux下C++写的smtp的邮件发送程序,
但是运行时提示连接不上。
代码如下:
请教,为什么那个connect连接失败呢?
但是运行时提示连接不上。
代码如下:
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <string>
using std::string;
int Connect(const string& host)
{
int sock = 0;
struct hostent * remoteHost;
if ((remoteHost = gethostbyname(host.c_str())) == 0)
{
printf("get host failed:%s\n", host.c_str());
return 0;
}
struct sockaddr_in pin;
memset(&pin, 0, sizeof(pin));
pin.sin_family = AF_INET;
pin.sin_port = htons(25);
pin.sin_addr.s_addr = ((struct in_addr *)(remoteHost->h_addr))->s_addr;
printf("remote host ip:%s, %u\n", remoteHost->h_addr, pin.sin_addr.s_addr);
if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("create socket failed\n");
return 0;
}
if (connect(sock, (const sockaddr*)&pin, sizeof(pin)) == -1)
{
printf("connect failed\n"); // 这里提示连接失败!
return 0;
}
return sock;
}
int main(int argc, const char** argv)
{
int sock = Connect("mail.google.com");
if (sock == 0)
{
return 1;
}
printf("Connect succeed:%d\n", sock);
string fromAddr = "xxx@gmail.com";
string msg;
msg = "mail from:<";
msg.append(fromAddr);
msg.append(">\n");
string toAddr = "xxx@gmail.com";
msg.append("rcpt to:<");
msg.append(toAddr);
msg.append(">\n");
string subject = "ttttt";
string content = "aaaaa";
msg.append("data\n");
msg.append("subject:");
msg.append(subject);
msg.append("\n\n");
msg.append(content);
msg.append("\n.\n");
if (send(sock, msg.c_str(), msg.length(), 0) == -1)
{
printf("send fetching request failed\n");
return 1;
}
char recvBuf[1024];
int l = recv(sock, recvBuf, 1023, 0);
printf("recv len:%d\n", l);
printf("%s\n", recvBuf);
return 0;
}
请教,为什么那个connect连接失败呢?
...全文
相关推荐
curl 发送邮件 linux下完整工程
curl 邮件 c++ 类 完整工程示例 带makefiel
sendmail-master.zip
linux平台下、C++语言写的基于465(SSL协议)端口以及25(TLS协议)端口的发送邮件代码。别的大佬写的,亲测可用
C++ Linux 邮件发送库 jwSMTP
邮件发送:修正过的jwSMTP库,支持html,解决中文乱码问题,支持多个接收者等
SMTP发送邮件程序(支持SSL和TLS)
SMTP发送邮件,支持SSL和TLS 核心程序可以跨平台,UTF-8,base64编码,可发送附件 界面用MFC写的,只是方便测试
qt开发的邮件发送工具
使用qt开发,通过socket通信实现smtp协议。在window,linux平台下均可编译运行,支持市面上的绝大部分邮箱,支持发送附件。


