Smtp客户端 - 从和不发送

我有一个smtp客户端生成在c + +我可以发送电子邮件到我的测试mailtrap帐户。 标题发送和电子邮件到达很好。Smtp客户端 - 从和不发送

我的问题是,从/到指示该字段为空 - 所显示的截图

我送头与

write_command("MAIL FROM: <[email protected]>"); 

write_command("RCPT TO: <[email protected]>");

我用我的Smtp客户端的完整代码做了一个要点

https://gist.github.com/anonymous/7bb13de7f044bcb5d07d0e6a9d991ea9

我从我的main()函数调用它

Smtp smtp_client = Smtp(); 

smtp_client.new_connection("smtp.mailtrap.io", 25);

smtp_client.auth_login("username", "password");

smtp_client.sendmail();

smtp_client.close_connection();

感谢黏合看看

回答:

我设法让该字段显示,编辑sendmail功能位:

void sendmail() 

{

write_command("MAIL FROM: <[email protected]>");

write_command("RCPT TO: <[email protected]>");

write_command("DATA");

std::string data;

data.append("MIME-Version: 1.0\r\n");

data.append("From: <[email protected]>\r\n");

data.append("To: <[email protected]>\r\n");

data.append("Subject: Welcome\r\n");

data.append("Date: Fri, 29 Dec 2017 09:30:00 -0400\r\n");

data.append("\r\n"); //this seems to matter

data.append("This is a test");

data.append("\r\n.");

write_command(data);

write_command("QUIT");

}

我把整个数据放入一个字符串,并发送它在一个单一的写。

什么(显然)事项:

  1. 没有开始一个空行的数据段;
  2. 在消息文本前添加一个空行。

我还编辑您的write_command,它不涉及到你的问题,但我建议你不要将字符串复制到缓冲区,但直接使用字符串代替:

//char command_buffer[255]; 

//strcpy(command_buffer, command.c_str());

//n = write(sockfd,command_buffer,strlen(command_buffer));

n = write(sockfd,command.c_str(),command.length());

以上是 Smtp客户端 - 从和不发送 的全部内容, 来源链接: utcz.com/qa/261273.html

回到顶部