C ++ Email отключается при добавлении пустого символа - PullRequest
0 голосов
/ 23 февраля 2019

Итак, в основном я пытаюсь отправить сообщение с несколькими переменными.Если условие соответствует, переменная будет отображаться как сообщение.В противном случае оно будет пустым.Я использую libcurl для этого, и это текущее сообщение электронной почты:

char chartest[] = "This is Message #1";
char chartest2[] = "This is Message #2";
char chartest3[] = "This is Message #3";
const char *payload_text[] = {
    "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n",
    "To: " TO "\r\n",
    "From: " FROM "\r\n",
    "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@"
    "rfcpedant>\r\n",
    "Subject: Test!\r\n",
    "\r\n",
    "Testing.\r\n",
    chartest, "\r\n",
    chartest2, "\r\n",
    chartest3, "\r\n",
    NULL
};

Это отобразит:

Testing.
This is Message #1
This is Message #2
This is Message #3

Это то, что я хочу.

Однако, если я установлю одно из сообщений пустым (потому что я не хочу, чтобы пользователь получил это сообщение):

char chartest[] = "This is Message #1";
char chartest2[] = "";
char chartest3[] = "This is Message #3";
const char *payload_text[] = {
    "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n",
    "To: " TO "\r\n",
    "From: " FROM "\r\n",
    "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@"
    "rfcpedant>\r\n",
    "Subject: Test!\r\n",
    "\r\n",
    "Testing.\r\n",
    chartest, "\r\n",
    chartest2, "\r\n",
    chartest3, "\r\n",
    NULL
};

Появится:

Testing.
This is Message #1

По какой-то причине, он пропускает Message #3.

Как я могу реализовать это, чтобы пропустить определенные сообщения или дополнительный текст, не пропуская остальную часть сообщения полностью?

РЕДАКТИРОВАТЬ:

Это пример, который я использую.Помимо сообщения (и добавленных значений символов) код такой же.

https://github.com/curl/curl/blob/master/docs/examples/smtp-tls.c

Я также немного отредактировал код.

char chartest[] = "This is Message #1";
char chartest2[] = "This is Message #2";
char chartest3[] = "This is Message #3";
const char *payload_text[] = {
    "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n",
    "To: " TO "\r\n",
    "From: " FROM "\r\n",
    "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@"
    "rfcpedant>\r\n",
    "Subject: Test!\r\n",
    "\r\n",
    "Testing.", chartest, chartest2, chartest3, "\r\n",
    NULL
};

К сожалению, это все еще проблема.

РЕДАКТИРОВАТЬ 2:

Мне интересно, может быть, chartest2 рассматривается как "NULL", таким образом преждевременно заканчивая сообщение перед фактическим NULL.Если это так, то мне интересно, как бы я установил пустой (но не нулевой) символ.

...