Sending email with smtp server

Tagged: ,

Viewing 1 reply thread
  • Author
    Posts
    • #11858
      Deniz Braun

        Hey Renzo,

        as i mentioned yesterday i tried to send an email within our internal network. It doesnt work with the external gmail smtp server because we cant establish connection in the internet. I want to use the alternative “more complex” constructor. My pointer knowledge is very little so is there an example code i can use? If i type the ip address and the port of the exchange server it gives me an error code, when i want to send the email in this line: “EMailSender::Response resp = emailSend.send(“recipient@example.com”, message); //Sending E-Mail”

        
        #include <ESP8266WiFi.h>
        #include <WiFiClient.h>
        #include <ESP8266WebServer.h>
        #include <ESP8266HTTPClient.h>
        #include <Arduino.h>
        #include <EMailSender.h>
        
        String currentDashButtonLocation = "Produktionshalle1″;
        
        ADC_MODE(ADC_VCC); // Setting referencevoltage of the ADC to supply voltage
        
        const char *ssid = "HuaweiDB"; //Networkname
        const char *password = "karacam1″; // Password
        
        	void setSMTPPort(uint16_t smtp_port = 25);
        	void setSMTPServer(const char* smtp_server="139.23.33.14″);
        	void setEMailFrom(const char* email_from="noreply@siemens.com");
        	void setEMailLogin(const char *email_login);
        	void setEMailPassword(const char *email_password);
        
        	void setup() {
        		float conversionFactor = 1087.33; // Calibration of ADC-Input caused by resistors tolerance
        		float vdd = ESP.getVcc();
        		vdd = vdd / 1044.77;
        		String vddString = String(vdd);
        
        		Serial.begin(500000);
        		delay(500);
        		Serial.println(" ");
        		Serial.print("Connecting to Wifi ");
        		WiFi.begin(ssid, password);
        
        		while (WiFi.status() != WL_CONNECTED) { //wait till Wemos mini is connected to the Internet via WiFi
        			delay(500);
        			Serial.print(".");
        		}
        
        		Serial.println("");
        		Serial.println("WiFi connected");
        		Serial.print("IP address: ");
        		Serial.println(WiFi.localIP());
        		Serial.print("MAC: ");
        		Serial.println(WiFi.macAddress());
        		Serial.print("Supply voltage = ");
        		Serial.print(vdd);
        		Serial.println("V");
        //delay(100);
        
        // Sending E-Mail if Vdd is under a critical level
        		if (vdd < 4) { // kleiner 2.6V
        			EMailSender::EMailMessage message;
        			message.subject = "Batteriestand niedrig" + vddString + "Volt"; // Subject of E-Mail
        			message.message =
        					"Der Batteriestand von Dashbutton in "
        							+ currentDashButtonLocation
        							+ " ist niedrig! Bitte tauschen sie die Batterien. (Lithium AA Batterien)"; //Message to send in the E-Mail
        			EMailSender::Response resp = emailSend.send(
        					"denizsarikan19@googlemail.com", message); //Sending E-Mail
        			Serial.println("Sending status: ");
        			Serial.println(resp.status); //Check if sending E-Mail was successful
        			Serial.println(resp.code); //Print response code of the sending process
        			Serial.println(resp.desc);
        		}
        
        //HTTP Request
        		HTTPClient http; //Declare object of class HTTPClient
        
        		String postData = "http://141.73.250.4:8100/workflow/40”;
        		http.begin(postData); //Specify request destination
        		http.addHeader("Content-Type", "application/x-www-form-urlencoded"); //Specify content-type header
        		int httpCode = http.POST(postData); //Send the request
        		String payload = http.getString(); //Get the response payload
        
        		Serial.println("HTTP return code");
        		Serial.println(httpCode); //Print HTTP return code
        		Serial.println("Response payload");
        		Serial.println(payload); //Print request response payload
        
        		http.end(); //Close connection
        
        //Deepsleep routine
        
        		Serial.println("Going into deep sleep mode");
        		ESP.deepSleep(0); //Put Wemos D1 mini into deepsleep mode until the dashbutton is pressed
        	}
        
        	void loop() {
        
        	}
        
        
      • #11860
        Renzo Mischianti
        Keymaster

          Hi Deniz,
          you can set all parameter like so

          
          EMailSender emailSend("<user>", "<PASSWD>", "<FROM-EMAIL>", "<server-smtp>", <smtp-server-port>);
          
          

          I think It’s what you need.

          Bye Renzo

          • #12014
            Deniz Braun

              Hey Renzo, the Problem is, that i need so leave user and password empty as we dont need that here. If i do that, it gives me an error code.

              Deniz

            • #12016
              Renzo Mischianti
              Keymaster

                Hi Deniz,
                to prevent authentication phase use this command:

                
                emailSender.setUseAuth(false);
                

                Give me a feedback..
                Bye Renzo

          Viewing 1 reply thread
          • You must be logged in to reply to this topic.
          Exit mobile version