使用POCO电子邮件时,每个包含“没有此类文件/目录”

时间:2014-11-30 19:28:28

标签: c++ include poco

这是应该发送电子邮件的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但我得到同样的错误?我该如何正确使用它?请帮忙!

1 个答案:

答案 0 :(得分:0)

当您使用括号指示#include <filename>时,您的编译器将查找相对于包含路径的文件名:

  • 使用MSVC,您可以在项目的属性中设置此包含路径。选择C/C++然后General并输入库的\dirpath作为包含目录,以便\dirpath\Poco\Net是一个绝对路径,有效地指向poco头的包含目录位于。

  • 使用g ++,您可以使用命令行选项-I\dirpath进行设置。

或者,您可以使用双引号更改#include "filename"。在这种情况下,编译器会查找相对于要编译的源代码路径的文件名。