Итак, в основном я пытаюсь отправить сообщение с несколькими переменными.Если условие соответствует, переменная будет отображаться как сообщение.В противном случае оно будет пустым.Я использую 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.Если это так, то мне интересно, как бы я установил пустой (но не нулевой) символ.