这是应该发送电子邮件的POCO框架代码:
#include <iostream>
#include <Poco/Net/MailMessage.h>
#include <Poco/Net/MailRecipient.h>
#include <Poco/Net/SMTPClientSession.h>
#include <Poco/Net/NetException.h>
using namespace std;
using namespace Poco::Net;
using namespace Poco;
int main(int argc, char *argv[])
{
string host = "mail.domain.com";
UInt16 port = 25;
string user = "xxx";
string password = "xxx";
string to = "xxx@domain.com";
string from = "xxx@domain.com";
string subject = "Your first e-mail message sent using Poco Libraries";
subject = MailMessage::encodeWord(subject, "UTF-8");
string content = "Well done! You've successfully sent your first message using Poco SMTPClientSession";
MailMessage message;
message.setSender(from);
message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT, to));
message.setSubject(subject);
message.setContentType("text/plain; charset=UTF-8");
message.setContent(content, MailMessage::ENCODING_8BIT);
try {
SMTPClientSession session(host, port);
session.open();
try {
session.login(SMTPClientSession::AUTH_LOGIN, user, password);
session.sendMessage(message);
cout << "Message successfully sent" << endl;
session.close();
} catch (SMTPException &e) {
cerr << e.displayText() << endl;
session.close();
return 0;
}
} catch (NetException &e) {
cerr << e.displayText() << endl;
return 0;
}
return 0;
}
但是它说每个包含都没有这样的文件/目录。我尝试将我的.cpp文件放在POCO文件夹中,但它没有做任何事情。我也试过运行buildvs120.bat但我得到同样的错误?我该如何正确使用它?请帮忙!
答案 0 :(得分:0)
当您使用括号指示#include <filename>
时,您的编译器将查找相对于包含路径的文件名:
使用MSVC,您可以在项目的属性中设置此包含路径。选择C/C++
然后General
并输入库的\dirpath
作为包含目录,以便\dirpath\Poco\Net
是一个绝对路径,有效地指向poco头的包含目录位于。
使用g ++,您可以使用命令行选项-I\dirpath
进行设置。
或者,您可以使用双引号更改#include "filename"
。在这种情况下,编译器会查找相对于要编译的源代码路径的文件名。