Intereting Posts
как повернуть данную строку влево или вправо в C? Можем ли мы присвоить значение данной ячейке памяти? Является ли const-casting через undefined поведение соединения? fgets () не работает после fscanf () реализация ключей продукта Как пропустить строку, выполняющую переполнение буфера в C Выходит ли из этого объема свободная связанная память? Почему не возвращает 0x80000000 из функции, которая возвращает int32_t, вызывают предупреждение? Как отличить sockaddr_storage и не нарушать правила строгого сглаживания Прочитайте координаты из файлов txt с помощью программы C Разница между обходом связанного списка ** while (thead! = NULL) ** и while (thead-> next! = NULL) почему заполнение в этом случае не происходит? C: проблема sscanf Подчините процедуру подclassа, чтобы он мог использоваться как в окне, так и в диалоговом окне C сокеты отправляют UDP и обрабатывают ICMP-ответ от маршрутизатора

SMTP-почта с использованием libcurl

Я скомпилировал, например, корабли с libcurl.
Исходный файл – smtp-tls.c
Пытался использовать его для отправки почты через gmail, и это ответ, который я получил

Что я упустил? Я не изменял код каким-либо образом, кроме переменных входов. На этой машине я могу отправлять и получать почту с помощью Outlook 2003.
РЕДАКТИРОВАТЬ
Пробовал другой порт. Это результат

  • О подключении () к порту smtp.gmail.com 587 (# 0)
  • Попытка 74.125.93.109 … * подключена
  • Server auth с использованием Basic с пользователем ‘xxxxxxx@gmail.com’

    GET / HTTP / 1.1 Авторизация: Базовый xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Хост: smtp.gmail.com:587 Принять: /

220 mx.google.com ESMTP ew54y2x5of95qdz.12 502 5.5.1 Нераспознанная команда. ew54y2x5of95qdz.12 * Connection # 0 для размещения smtp.gmail.com оставлено без изменений * Закрытие соединения # 0

РЕДАКТИРОВАТЬ
Главная выглядит так

 int main() { CURL *curl; CURLcode res; struct curl_slist *recipients = NULL; struct upload_status upload_ctx; upload_ctx.lines_read = 0; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "smtp://gmail.com:587"); curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL); curl_easy_setopt(curl, CURLOPT_USERNAME, "xxxxxx@gmail.com"); curl_easy_setopt(curl, CURLOPT_PASSWORD, "xxxxxxxx"); curl_easy_setopt(curl, CURLOPT_MAIL_FROM, FROM); recipients = curl_slist_append(recipients, TO); recipients = curl_slist_append(recipients, CC); curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients); curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source); curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx); curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); res = curl_easy_perform(curl); curl_slist_free_all(recipients); curl_easy_cleanup(curl); } return 0; } 

РЕДАКТИРОВАТЬ
Похоже, правильный URL-адрес должен быть smtp://smtp.gmail.com:587
Это доставляет меня дальше, теперь я получаю

 * About to connect() to smtp.gmail.com port 587 (#0) * Trying 74.125.45.108... * connected  EHLO my_computer_name < 250-mx.google.com at your service, < 250-SIZE 35882577 < 250-8BITMIME < 250-STARTTLS  QUIT < 221 2.0.0 closing connection j26srtuiopnann.7 * Closing connection #0 * Login denied 

РЕДАКТИРОВАТЬ
Libcurl не был построен с поддержкой SSL

Первый вывод выглядит так: вы загружаете libcurl URL-адрес HTTP.

С вашим отредактированным вопросом проблема теперь превратилась во что-то совершенно другое. Теперь похоже, что вы, возможно, не используете SSL в своем встроенном libcurl?

моя программа имела эту ошибку. Connect #0 to host smtp.gmail.com left intact failed . Но он работает. Я могу отправить почту через учетную запись gmail. Но я не знаю, что это причина этой ошибки.

я использую команду curl-config --feature и получаю результат:

 SSL IPv6 libz IDN NTLM NTLM_WB