I have used similar methods like this and they work fine for accepting various stringsā¦ E.g. Case 3 takes the recipient email address as a String from a Text Input Widget
Note the .c_str() after the email address in Blynk.email() Admittedly I am not entirely understanding why it is needed only for the address, but it works.
String emailAddress;
String emailSubject;
String emailMessage;
BLYNK_WRITE(vPin1) { // Text Input Widget
emailAddress = param.asStr();
}
BLYNK_WRITE(vPin2) { // Segmented Switch
switch (param.asInt()) {
case 1: { // Item 1
emailAddress = "myemail@gmail.com";
emailSubject = "Test ONE";
emailMessage = "Test ONE occurring at ";
emailMessage += millis();
emailMessage += " milliseconds";
break;
}
case 2: { // Item 2
emailAddress = "youremail@gmail.com";
emailSubject = "Test TWO";
emailMessage = "Test TWO occuring at ";
emailMessage += millis();
emailMessage += " milliseconds";
break;
}
case 3: { // Item 3
// Address pulled from Text Input Widget
emailSubject = "Test THREE";
emailMessage = "Test THREE occuring at ";
emailMessage += millis();
emailMessage += " milliseconds";
break;
}
}
Blynk.email(emailAddress.c_str(), emailSubject, emailMessage);
}