用C+发送电子邮件+; 我试图用C++发送电子邮件。我发现类CSmtp看起来不错。因此我尝试了示例项目,但它给出了错误代码:

用C+发送电子邮件+; 我试图用C++发送电子邮件。我发现类CSmtp看起来不错。因此我尝试了示例项目,但它给出了错误代码:,c++,email,C++,Email,错误:未定义的错误id 现在我试图找出问题出在哪里,因为错误代码太笼统了。我调试了项目,找到了这个错误代码 我在谷歌上搜索了一下,但没有找到答案。有人能帮忙吗 课程链接: 代码: #包括“CSmtp.h” #包括 int main() { bool-bError=false; 尝试 { CSmtp邮件; #定义测试\u gmail\u tls #如果已定义(测试\u gmail\u tls) mail.SetSMTPServer(“smtp.gmail.com”,587); mail.SetSe

错误:未定义的错误id

现在我试图找出问题出在哪里,因为错误代码太笼统了。我调试了项目,找到了这个错误代码

我在谷歌上搜索了一下,但没有找到答案。有人能帮忙吗

课程链接:

代码:

#包括“CSmtp.h”
#包括
int main()
{
bool-bError=false;
尝试
{
CSmtp邮件;
#定义测试\u gmail\u tls
#如果已定义(测试\u gmail\u tls)
mail.SetSMTPServer(“smtp.gmail.com”,587);
mail.SetSecurityType(使用_TLS);
#已定义elif(测试\u gmail\u ssl)
mail.SetSMTPServer(“smtp.gmail.com”,465);
mail.SetSecurityType(使用SSL);
#已定义elif(测试\u hotmail\u TLS)
mail.SetSMTPServer(“smtp.live.com”,25);
mail.SetSecurityType(使用_TLS);
#定义的elif(测试aol tls)
mail.SetSMTPServer(“smtp.aol.com”,587);
mail.SetSecurityType(使用_TLS);
#已定义elif(测试ssl)
mail.SetSMTPServer(“plus.smtp.mail.yahoo.com”,465);
mail.SetSecurityType(使用SSL);
#恩迪夫
mail.SetLogin(“*我的电子邮件地址*”);
mail.SetPassword(“*密码*”);
mail.SetSenderName(“用户”);
mail.SetSenderMail(“*我的电子邮件地址*”);
mail.SetReplyTo(“*我朋友的电子邮件地址*”);
mail.SetSubject(“消息”);
mail.SetXPriority(XPRIORITY\u NORMAL);
SetXMailer(“蝙蝠!(v3.02)专业版”);
mail.AddMsgLine(“你好,”);
mail.AddMsgLine(“”);
mail.AddMsgLine(“…”);
mail.AddMsgLine(“你今天好吗?”);
mail.AddMsgLine(“”);
mail.AddMsgLine(“问候”);
mail.ModMsgLine(5,“问候”);
DelMsgLine邮件(2);
mail.AddMsgLine(“用户”);
//mail.AddAttachment(“../test1.jpg”);
//mail.AddAttachment(“c:\\test2.exe”);
//mail.AddAttachment(“c:\\test3.txt”);
mail.Send();
}
捕获(ECE)
{

std::cout标准C++11没有这样的功能(但您的特定操作系统可能会提供额外的SMTP客户端库)。可能您需要类似库或类似框架的库

请注意,电子邮件的功能是特定于操作系统的。 此外,大多数服务器配置为拒绝(否则,垃圾邮件机器人会使用它们,通过它们发送的电子邮件将被拒绝,因为被列入黑名单)

例如,您可以在本地计算机或服务器上配置某些SMTP服务,并通过编程方式通过
localhost
(然后SMTP服务器将假脱机和中继电子邮件等)发送电子邮件-或发送到某个特定且定义良好的“”如果您的系统和网络有一个SMTP中继主机名,您可能不想在程序中连接某些SMTP中继主机名,并且如果收件人SMTP服务器关闭或无法访问,您确实希望邮件被假脱机(而不是丢失!);换句话说,您需要一些SMTP服务器

您当然不想从头开始编写SMTP服务器的代码

因此,您的程序应该只将SMTP发送到某个受信任的主机,该主机已正确配置以避免垃圾邮件(然后您可能需要将某些
回复到
SMTP头设置为适合您的SMTP主机的头)。请确保Google、Yahoo、AOL等主要互联网公司正在仔细配置其SMTP服务,以禁止开放中继垃圾邮件。通常,他们只接受来自其业务客户端的SMTP中继连接(并且他们会切断进行自动垃圾邮件处理的客户端)。因此,您应该将SMTP发送到ISP的SMTP服务器(或发送到某个本地或附近的SMTP服务器)

请注意,法律或ISP服务条款通常禁止垃圾邮件


您还可以运行一些命令(例如使用<代码> POPON < /代码>)发送邮件…

< P>我建议您使用PopeScript脚本发送电子邮件,然后从C++程序调用该脚本。使用SMTP.gmail作为服务器和465端口。 这会有帮助。。

已编辑。Ofc电子邮件和通行证不是真实的,而是真实的代码?我只隐藏了密码和电子邮件。这个问题缺少的是您正在使用的库的详细信息。
CSmtp
没有告诉我们很多。“C”是类类型的通用前缀,SMTP是邮件协议,所以这只是告诉我们您正在使用一个处理邮件的类。但是哪个类来自哪个库?我是新手,所以我不明白您的意思。如果您是这个意思,该类使用openSSL库。我只是从中得到它,看起来您正在编写垃圾邮件bot。我不确定它是lEgAL;我不确定你会在这里得到帮助,细节是系统和ISP的特定。嗯……这是什么类?它是普通的C++类,不是吗?它在Windows下有很多注释,VSIt只是不标准的。难道没有办法通过C++这样的公司通过谷歌发送电子邮件吗?谢谢你的解释。你需要通过你的ISP SMTP服务。这不是一个编程问题,而是一个系统管理问题,你的ISP可能禁止垃圾邮件请停止指责每个人“垃圾邮件”
  ErrorCode   WSA_SELECT (109)    ECSmtp::CSmtpError
    #include "CSmtp.h"
#include <iostream>

int main()
{
    bool bError = false;

    try
    {
        CSmtp mail;

#define test_gmail_tls

#if defined(test_gmail_tls)
        mail.SetSMTPServer("smtp.gmail.com",587);
        mail.SetSecurityType(USE_TLS);
#elif defined(test_gmail_ssl)
        mail.SetSMTPServer("smtp.gmail.com",465);
        mail.SetSecurityType(USE_SSL);
#elif defined(test_hotmail_TLS)
        mail.SetSMTPServer("smtp.live.com",25);
        mail.SetSecurityType(USE_TLS);
#elif defined(test_aol_tls)
        mail.SetSMTPServer("smtp.aol.com",587);
        mail.SetSecurityType(USE_TLS);
#elif defined(test_yahoo_ssl)
        mail.SetSMTPServer("plus.smtp.mail.yahoo.com",465);
        mail.SetSecurityType(USE_SSL);
#endif

        mail.SetLogin("* My Email Adress *");
        mail.SetPassword("*Password*");
        mail.SetSenderName("User");
        mail.SetSenderMail("* My Email Adress *");
        mail.SetReplyTo("* Email Adress of my friend *");
        mail.SetSubject("The message");
        mail.SetXPriority(XPRIORITY_NORMAL);
        mail.SetXMailer("The Bat! (v3.02) Professional");
        mail.AddMsgLine("Hello,");
        mail.AddMsgLine("");
        mail.AddMsgLine("...");
        mail.AddMsgLine("How are you today?");
        mail.AddMsgLine("");
        mail.AddMsgLine("Regards");
        mail.ModMsgLine(5,"regards");
        mail.DelMsgLine(2);
        mail.AddMsgLine("User");

        //mail.AddAttachment("../test1.jpg");
        //mail.AddAttachment("c:\\test2.exe");
        //mail.AddAttachment("c:\\test3.txt");
        mail.Send();
    }
    catch(ECSmtp e)
    {
        std::cout << "Error: " << e.GetErrorText().c_str() << ".\n";
        bError = true;
    }
    if(!bError)
        std::cout << "Mail was send successfully.\n";
    return 0;
}