Winforms 使用WFA发送电子邮件时的安全连接

Winforms 使用WFA发送电子邮件时的安全连接,winforms,email,c++-cli,send,Winforms,Email,C++ Cli,Send,我正在使用这个函数: void SendEmail(String ^ sendTo, String ^ sendFrom, String ^ subject, String ^ body, bool enableSsl, char* user_login, char* user_pass) { SmtpClient^ client = gcnew SmtpClient(); MailMessage^ msg = gcnew Mail

我正在使用这个函数:

void SendEmail(String ^ sendTo, String ^ sendFrom, String ^ subject, String ^ body, bool enableSsl, char* user_login, char* user_pass)
        {
            SmtpClient^ client = gcnew SmtpClient();
            MailMessage^ msg = gcnew MailMessage();

            String ^ user = gcnew String(user_login);
            String ^ pass = gcnew String(user_pass);

            System::Net::NetworkCredential^ smtpCreds = gcnew System::Net::NetworkCredential(user, pass);


                client->Host = "smtp.gmail.com";
                client->Port = 587;
                client->Credentials = smtpCreds;
                client->EnableSsl = enableSsl;

                MailAddress^ to = gcnew MailAddress(sendTo);
                MailAddress^ from = gcnew MailAddress(sendFrom);

                msg->Subject = subject;
                msg->Body = body;
                msg->From = from;
                msg->To->Add(to);

                client->Send(msg);
        }
用于发送电子邮件。我对第9行有问题-如果我像这样设置静态字符串:

System::Net::NetworkCredential^ smtpCreds = gcnew System::Net::NetworkCredential("adress@gmail.com", "my_password");
没关系-邮件将被发送,但当我尝试使用其他函数中的变量时,应用程序崩溃:

“System.Net.Mail.SmtpException”类型的未处理异常 发生在System.dll中

其他信息:SMTP服务器需要安全连接 或者客户端没有经过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息,请访问

是的,SSL是启用的

我已从文件中获得登录名和密码:

char * getAccountData(int marker, int lb_kont)
{
    char wyjscie[256], login[256], password[256];
    char * korektor = "||";
    char * schowek;
    string zawartosc_pliku;

    ifstream NowyPlik;
    NowyPlik.open("C:\\account.db");
    for(int a =1; a<=lb_kont; a++)
    {
        getline(NowyPlik, zawartosc_pliku); 
        strncpy(wyjscie, zawartosc_pliku.c_str(), 128);
        schowek = strtok( wyjscie, korektor );
        strcpy(login, schowek);
        schowek = strtok( NULL, korektor );
        strcpy(password, schowek);
    }

    NowyPlik.close();
    if(marker == 1)
        return login;
    if(marker == 2)
        return password;
}
char*getAccountData(int标记,int lb_-kont)
{
char wyjscie[256],登录[256],密码[256];
char*korektor=“| |”;
char*schowek;
字符串Zawartoscpliku;
ifstream NowyPlik;
NowyPlik.open(“C:\\account.db”);

对于(int a=1;如何从另一个函数中使用变量?您是将其作为参数传递给另一个函数还是什么?我忘了,抱歉,请再次查看我的第一篇文章。代码中没有任何错误,请使用调试器对其进行检查,找出异常发生的确切位置,并着手解决该问题。@johnathon:W当我将
getAccountData(1,a)
作为String^sendFrom(是的,我在前面将类型char*更改为String)放入SendEmail函数时,我得到了警告:其他信息:在邮件头中发现了无效字符:“”。那么,您是否已经找出了无效字符?