2017-12-18 19 views
5

私はsmtpクライアントをC++でビルドしていますが、私はテスト用のメールトラップアカウントにメールを送信できます。 ヘッダーが送信され、電子メールが正常に到着しています。Smtpクライアント - 送信しないと送信する

私の問題は、/から示すフィールドが空であること、である - スクリーンショットに表示されているように

enter image description here

私は

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

Iでヘッダを送信していますSmtpクライアントの完全なコードで要点を作成しました

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

私は

+0

私は私が作ったと思いますそれ。私は答えを編集しました。 –

答えて

4

私はフィールドがあなたのsendmail機能ビットを編集して、表示されるように管理し

外観を仮止め用

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(); 

おかげで私のmain()機能からそれを呼んでいる:

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つの文字列で送信し、1回の書き込みで送信します。

何(明らかに)問題:

  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()); 
+0

ありがとう - 私はこれを試してみましたが、運が全くありません。 – abdoe

+0

さらに調査したところ、無料アカウントの意図的な制限だと思います。デモ受信ボックスに入るたびに、xhrはjson形式でメッセージをダウンロードし、各オブジェクトには空のままのフィールドが多数あります。特に、from_email、from_name、to_email、to_nameは...基本的にはfreeは 'text_body'と他の情報はほとんどありません。 –

+0

私は最初は同じと思っていましたが、私がtelnetで同じことをすると、それらのフィールドは満たされます。だから私は何かを逃したと思います – abdoe

関連する問題