email sending - Fistel - 05.05.2025
Morning i'm trying to send Email
i followed the steps in the manuel attached, but i can't send email
RE: email sending - Daniel - 05.05.2025
Log what the mail function returns as suggested here: https://forum.logicmachine.net/showthread.php?tid=5242&pid=33911#pid33911
RE: email sending - Erwin van der Zwart - 05.05.2025
Are you using gmail? If yes did you created an app password in your gmail account and use that in your script?
RE: email sending - Fistel - 06.05.2025
(05.05.2025, 08:48)Daniel Wrote: Log what the mail function returns as suggested here: https://forum.logicmachine.net/showthread.php?tid=5242&pid=33911#pid33911 This is what i have from log
Code: * arg: 1
* nil
* arg: 2
* string: 535-5.7.8 Username and Password not accepted. For more information, go to
535 5.7.8 https://support.google.com/mail/?p=BadCredentials 4fb4d7f45d1cf-5fa77bf1e35sm8035646a12.66 - gsmtp
This is the function i used :
Code: function Email(to, subject, message)
-- make sure these settings are correct
---------------BEGINNING OF USER EDITABLE AREA-------------------
local settings = {
-- "from" field, only e-mail must be specified here
from = 'nguenangulrich6@gmail.com',
-- smtp username
user = 'nguenangulrich6@gmail.com',
-- smtp password
password = '***',
-- smtp server
server = 'smtp.gmail.com',
-- smtp server port
port = 465,
-- enable ssl, required for gmail smtp
secure = 'sslv23',
}
-------------------END OF USER EDITABLE AREA---------------------
local smtp = require('socket.smtp')
local escape = function(v)
return '<' .. tostring(v) .. '>'
end
-- message headers and body
settings.source = smtp.message({
headers = {
to = escape(to),
subject = subject,
},
body = message
})
-- fixup from field
settings.from = escape(settings.from)
settings.rcpt = { escape(to) }
return smtp.send(settings)
end
the gmail acount i created is "nguenangulrich6@gmail.com" and the pasword "***"
(05.05.2025, 08:55)Erwin van der Zwart Wrote: Are you using gmail? If yes did you created an app password in your gmail account and use that in your script?
Yes, like in the above message
RE: email sending - admin - 07.05.2025
You need to enable 2FA and the create app password: https://myaccount.google.com/apppasswords
When adding password to your script remove all spaces so only 16 characters are left.
RE: email sending - Fistel - 07.05.2025
(06.05.2025, 16:51)Fistel Wrote: (05.05.2025, 08:48)Daniel Wrote: Log what the mail function returns as suggested here: https://forum.logicmachine.net/showthread.php?tid=5242&pid=33911#pid33911 This is what i have from log
Code: * arg: 1
* nil
* arg: 2
* string: 535-5.7.8 Username and Password not accepted. For more information, go to
535 5.7.8 https://support.google.com/mail/?p=BadCredentials 4fb4d7f45d1cf-5fa77bf1e35sm8035646a12.66 - gsmtp
This is the function i used :
Code: function Email(to, subject, message)
-- make sure these settings are correct
---------------BEGINNING OF USER EDITABLE AREA-------------------
local settings = {
-- "from" field, only e-mail must be specified here
from = 'nguenangulrich6@gmail.com',
-- smtp username
user = 'nguenangulrich6@gmail.com',
-- smtp password
password = '***',
-- smtp server
server = 'smtp.gmail.com',
-- smtp server port
port = 465,
-- enable ssl, required for gmail smtp
secure = 'sslv23',
}
-------------------END OF USER EDITABLE AREA---------------------
local smtp = require('socket.smtp')
local escape = function(v)
return '<' .. tostring(v) .. '>'
end
-- message headers and body
settings.source = smtp.message({
headers = {
to = escape(to),
subject = subject,
},
body = message
})
-- fixup from field
settings.from = escape(settings.from)
settings.rcpt = { escape(to) }
return smtp.send(settings)
end
the gmail acount i created is "nguenangulrich6@gmail.com" and the pasword "***"
(05.05.2025, 08:55)Erwin van der Zwart Wrote: Are you using gmail? If yes did you created an app password in your gmail account and use that in your script?
Yes, like in the above message Thank's, it's OK now
RE: email sending - JuLopez - 27.11.2025
Morning to everyone,
I tryed to do the same script, in my Comm Funct, I have:
Code: function mail(to, subject, message)
-- make sure these settings are correct
local settings = {
-- "from" field, only e-mail must be specified here
from ='al*******@gmail.com',
-- smtp username
user = 'LM********',
-- smtp password
password = '********',
-- smtp server
server = 'smtp.gmail.com',
-- smtp server port
port = 465,
-- enable ssl, required for gmail smtp
-- secure = 'tlsv1_2',
secure = 'sslv23'
}
local smtp = require('socket.smtp')
local escape = function(v)
return '<'..tostring..'>'
end
-- if type(to) ~= 'table' then
-- to = { to }
--end
-- for index, email in ipairs(to) do
-- to[ index ] = '<' .. tostring(email) .. '>'
--end
-- Fixup from field
-- local from = '<' ..tostring(settings.from)..'>'
-- message headers and body
settings.source = smtp.message({
headers = {
-- to = table.concat(to, ', '),
to = escape(to),
subject = subject,
--['From'] = settings.from,
['From'] = from,
['Content-type'] = 'text/html; charset=utf-8',
},
body = message
})
-- fixup from field
--settings.from = '<' .. tostring(settings.from) .. '>'
-- settings.from = from
settings.from = escape(settings.from)
--settings.rcpt = to
settings.rcpt = { escape(to)}
return smtp.send(settings)
end
And in my Event-Script I have:
Code: curr_value = event.getvalue()
prev_value = storage.get('prev_value')
if curr_value == prev_value then
return
end
storage.set('prev_value', curr_value)
os.sleep(10)
if curr_value then
subject = 'Main switch = PERMIT'
message = '\nState: Desbloqueado'
else
subject = 'Main switch = PROHIBIT'
message = '\nState: BLOQUEADO!!'
end
mail('ju*********@gmail.com', subject, message)
The problem is that when I Run my Event script, I don't have any Log or Error, but I neither recive any e-mail in my account.
I will appreciate the help!
RE: email sending - admin - 27.11.2025
Use this to get the result/error in Logs tab.
Code: res, err = mail('ju*********@gmail.com', subject, message)
log(res, err)
Don't randomly change the mail() function. You only need to change the settings table, everything else should be kept as is. In your case the 'From' header is invalid because the assigned variable is not defined.
RE: email sending - JuLopez - 27.11.2025
(27.11.2025, 11:32)admin Wrote: Use this to get the result/error in Logs tab.
Code: res, err = mail('ju*********@gmail.com', subject, message)
log(res, err)
Don't randomly change the mail() function. You only need to change the settings table, everything else should be kept as is. In your case the 'From' header is invalid because the assigned variable is not defined.
Thanks for the point. I forgot to include the log, but when I run the script again, I get no response from either the log or the error log, even though I added the log before running it. I'm also not receiving the email. I've also removed the "From" from the message body, so it now looks like this (in Comm Func) :
Code: function mail(to, subject, message)
local settings = {
-- "from" field, only e-mail must be specified here
from ='al************@gmail.com',
-- smtp username
user = 'LM**********',
-- smtp password
password = 's************',
-- smtp server
server = 'smtp.gmail.com',
-- smtp server port
port = 465,
-- enable ssl, required for gmail smtp
-- secure = 'tlsv1_2',
secure = 'sslv23'
}
local smtp = require('socket.smtp')
local escape = function(v)
return '<' .. tostring .. '>'
end
-- message headers and body
settings.source = smtp.message({
headers = {
to = escape(to),
subject = subject,
},
body = message
})
settings.from = escape(settings.from)
settings.rcpt = { escape(to)}
return smtp.send(settings)
end
RE: email sending - admin - 27.11.2025
From header is required, mail sending won't work without it. Temporarily modify the event script so it only sends the email without checking the previous value and waiting for 10 seconds.
RE: email sending - JuLopez - 27.11.2025
(27.11.2025, 11:55)admin Wrote: From header is required, mail sending won't work without it. Temporarily modify the event script so it only sends the email without checking the previous value and waiting for 10 seconds.
Almost fixed, now it's sending me the same error that the collegue:
Quote: * string: 535-5.7.8 Username and Password not accepted. For more information
I already change the user name and the password, I delete the spaces from the password and give the same name that I use when i create the app password, the "app name"
RE: email sending - admin - 27.11.2025
Username should be the same as the sending email (from), including @gmail.com
The app password should be 16 characters without spaces.
RE: email sending - JuLopez - 27.11.2025
(27.11.2025, 12:18)admin Wrote: Username should be the same as the sending email (from), including @gmail.com
The app password should be 16 characters without spaces.
Thank you very much!
It's working!
|