Добрый день! Прошу помощи в отправки почты через этот модуль: Нашел иностранный ресурс, пробовал их библиотеку, но на пример SMTP Client из библиотеки ругается: Код (Text): E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73:25: error: UIPEthernet.h: No such file or directory E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:74:23: error: UIPClient.h: No such file or directory E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:75:23: error: UIPServer.h: No such file or directory Кто-нибудь заморачивался?
Поставил и ее то же. Если она стоит в отдельной папке - ругается так же. Если требуемые файлы закинуть в папку с библиотекой Fullip то пишет во это: Код (Text): In file included from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73, from SmtpClient.ino:35: E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:28:27: error: ethernet_comp.h: No such file or directory E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:32:37: error: utility/Enc28J60Network.h: No such file or directory In file included from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:33, from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73, from SmtpClient.ino:35: E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:26:28: error: utility/mempool.h: No such file or directory E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:29:26: error: utility/uip.h: No such file or directory In file included from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73, from SmtpClient.ino:35: E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:35:20: error: UIPUdp.h: No such file or directory E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:39:31: error: utility/uip_timer.h: No such file or directory In file included from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:33, from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73, from SmtpClient.ino:35: E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:49: error: 'memhandle' does not name a type E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:55: error: 'memhandle' does not name a type E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:56: error: 'memhandle' does not name a type E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:57: error: 'memaddress' does not name a type E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:91: error: 'UIP_CONNS' was not declared in this scope E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:97: error: 'memhandle' has not been declared E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:98: error: 'memhandle' has not been declared E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPClient.h:99: error: 'memhandle' has not been declared In file included from E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/FullIP.h:73, from SmtpClient.ino:35: E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:85: error: 'memhandle' does not name a type E:\Arduino\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\Fullip/UIPEthernet.h:86: error: 'memhandle' does not name a type
Учитесь импортировать библиотеки. http://wiki.amperka.ru/программирование:библиотеки со слов: Сторонние библиотеки Скачанные библиотеки должны находиться в по пути <Документы пользователя>\Arduino\libraries Если копируете ручками, то копировать нужно все, со всеми папками. У Вас ругается на отсутствие ethernet_comp.h, хотя он есть в корне библиотеки, Enc28J60Network.h, который находится в папке "utility". Ну и так далее
Разобрался, код должен иметь следующий вид, при условии, что все библиотеки в одной папке: Код (Text): #include <UIPEthernet.h> #include <SD.h> #include <FullIP.h> #include <MemoryFree.h> SmtpClient smtpclient; unsigned long next; //char server_name[] = "smtp.isp.mine"; //The name of your SMTP server char server_name[] = "smtp.yandex.ru"; //The domain that your emails will come from char domain_name[] = "yandex.ru"; //The sender char from[] = "zazamuh@yandex.ru"; //The receiver char to[] = "zazamuh@yandex.ru"; //The subject char subject[] = "This is the subject"; //And the body char body[] = "And here is the body"; void setup() { Serial.begin(115200); Serial.println("[SmtpClient]"); uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05}; Ethernet.begin(mac); Serial.print("localIP: "); Serial.println(Ethernet.localIP()); smtpclient.begin(server_name,domain_name); next = 0; delay(500); } void loop() { //Call this function in your loop to send message in the "background" smtpclient.maintain(); if (((signed long)(millis() - next)) > 0) { Serial.print("freeMemory()="); Serial.println(freeMemory()); if (smtpclient.isSent()) { Serial.println("Message was sent"); } else { Serial.println("Message was NOT sent"); } next = millis() + 10000; Serial.println("SMTP Client try to connect to server"); if (smtpclient.sendMail(from,to,subject,body)==1) { Serial.println("Message is in queue"); } else Serial.println("Can't connect to server"); } } Но этот сучий сын не поддерживает авторизацию!!! Код (Text): * This SMTPClient example gets its local ip-address via dhcp and send * emails every 10 seconds. * Actually, there is no support for auth mechanism. * Вот не сволочь?! Знает кто-нибудь как отправить мыло без авторизации? Пусть за небольшие деньги.
Нашел вот такой коммент в библиотеке, подскажите, что он значит? Можно как-то врубить аутентификацию? Код (Text): /// Initialize the smtp client. /// @param aSMTPServer the IPAddress of the SMTP server. /// @param domainstr the domain to use to send emails. /// @param authstr the auth string to use to authenticate. /// @return 1 if the operation succeed. 0 if it fails. uint8_t begin(const IPAddress& aSMTPServer, const char *domainstr, const char *authstr); /// Initialize the smtp client. /// @param aSMTPHost the host name of the SMTP server. /// @param domainstr the domain to use to send emails. /// @param authstr the auth string to use to authenticate (use the following command /// to generate it : perl -MMIME::Base64 -e 'print encode_base64("\000myuser\@yourisp.com\000password")'). /// @return 1 if the operation succeed. 0 if it fails. uint8_t begin(const char *aSMTPHost, const char *domainstr, const char *authstr);