Blynk doesn't send report to my email

Hello,
I started using Blynk a week ago. The APP on my iPhone connects through BLE to the nRF52832 successfully. I managed to get the app send me emails containing the authentification token. When I try to use the SuperChart, beautiful data curves were displayed on the mobile screen.

However, when I clicked “Export to CSV”, it told me “sending…” then returned to the project page, but I received nothing in my email.
I also tried to use “Reports” widget. When I click “Run Report”, it told me “sent”. But I still got nothing in my mailbox.

I have used both blynk server and local server, neither worked.

Could anyone tell me what is wrong with my project? Is there any trivial settings that I could have neglected?

Thank you in advance,
Ray

Some Widgets do NOT work on BT/BLE as the device doesn’t actually have a direct connection to the Server. Perhaps these reporting features are in the same category?

Thank you for answering, but I don’t get why the reporting widget of the app is influenced by BLE.
Since all the data have been perfectly logged on the iphone, the action needed is only to send data from app to email.

Me neither… thus the wording “perhaps” :stuck_out_tongue_winking_eye:

BT/BLE is still in beta, and preferably used with the beta versions of the Apps for full functionality.

If not already running beta App, I recommend you try it and update us.

BTW, the data is actually stored on the server, not in the App. Again, unsure if that affects how these email issues work with BT/BLE connected devices due it’s unique link.

The Devs seem to be working on some passthrough connectivity, so perhaps wait for them to chip in… well… after trying the beta App and sending in a Log report, if still failing.

Here are my log files, but it says “no data report for user admin@blynk.cc and reportId 1593074682.”
Could you please have a look maybe something is wrong with my server settings?

/// progress.log
11:09:59.850 - Separate DB storage disabled.
11:09:59.851 - Separate DB storage disabled.

/// worker.log
11:10:01.471 - Timers : 0
11:11:02.405 - Ticked widgets for 1 minute : 0. Per second : 0, total time : 0 ms
11:12:01.023 - Backup for user DB started...
11:12:01.040 - Backup for user DB finished.
11:12:02.410 - Ticked widgets for 1 minute : 0. Per second : 0, total time : 0 ms

/// blynk.log
11:09:59.809 INFO - Using data dir '\Path'
11:10:00.310 INFO - Region : local. Host : 128.178.19.89.
11:10:01.437 INFO - Initializing gmail smtp mail transport. Username : junruizhanga@gmail.com. SMTP host : smtp.gmail.com:587
11:10:01.503 INFO - Reports : 0
11:10:01.503 INFO - Didn't find custom user certificates.
11:10:01.504 INFO - Didn't find Let's Encrypt certificates.
11:10:01.504 WARN - You didn't specified 'server.host' or 'contact.email' properties in server.properties file. Automatic certificate generation is turned off. Please specify above properties for automatic certificates retrieval.
11:10:01.504 WARN - ATTENTION. Server certificate paths (cert : 'c:\Users\juzhang\Blynk Server', key : 'c:\Users\juzhang\Blynk Server') not valid. Using embedded server certs and one way ssl. This is not secure. Please replace it with your own certs.
11:10:02.160 INFO - HTTP API and WebSockets server listening at 8080 port.
11:10:02.162 INFO - HTTPS API, WebSockets and Admin page server listening at 9443 port.
11:10:02.163 INFO - Mqtt hardware server listening at 8440 port.
11:10:56.437 INFO - admin@blynk.cc Blynk-app (iOS-22600) joined.
11:11:22.947 INFO - No data for report for user admin@blynk.cc and reportId 1593074682.
11:11:22.947 INFO - Processed report for admin@blynk.cc, time 76 ms.

/// stats.log
{
  "commands" : {
    "response" : 0,
    "redeem" : 0,
    "hardwareConnected" : 0,
    "register" : 0,
    "login" : 0,
    "hardwareLogin" : 0,
    "loadProfile" : 0,
    "appSync" : 0,
    "sharing" : 0,
    "getToken" : 0,
    "ping" : 0,
    "activate" : 0,
    "deactivate" : 0,
    "refreshToken" : 0,
    "getGraphData" : 0,
    "exportGraphData" : 0,
    "setWidgetProperty" : 0,
    "bridge" : 0,
    "hardware" : 0,
    "getSharedDash" : 0,
    "getShareToken" : 0,
    "refreshShareToken" : 0,
    "shareLogin" : 0,
    "createProject" : 0,
    "updateProject" : 0,
    "deleteProject" : 0,
    "hardwareSync" : 0,
    "internal" : 0,
    "sms" : 0,
    "tweet" : 0,
    "email" : 0,
    "push" : 0,
    "addPushToken" : 0,
    "createWidget" : 0,
    "updateWidget" : 0,
    "deleteWidget" : 0,
    "createDevice" : 0,
    "updateDevice" : 0,
    "deleteDevice" : 0,
    "getDevices" : 0,
    "createTag" : 0,
    "updateTag" : 0,
    "deleteTag" : 0,
    "getTags" : 0,
    "addEnergy" : 0,
    "getEnergy" : 0,
    "getServer" : 0,
    "connectRedirect" : 0,
    "webSockets" : 0,
    "eventor" : 0,
    "webhooks" : 0,
    "appTotal" : 0,
    "mqttTotal" : 0
  },
  "http" : {
    "isHardwareConnected" : 0,
    "isAppConnected" : 0,
    "getPinData" : 0,
    "updatePinData" : 0,
    "email" : 0,
    "notify" : 0,
    "getProject" : 0,
    "qr" : 0,
    "getHistoryPinData" : 0,
    "total" : 0
  },
  "ioStat" : {
    "messagingActiveTasks" : 0,
    "messagingExecutedTasks" : 0,
    "historyActiveTasks" : 0,
    "historyExecutedTasks" : 0,
    "dbActiveTasks" : 0,
    "dbExecutedTasks" : 0,
    "getServerActiveTasks" : 0,
    "getServerExecutedTasks" : 0,
    "reportsActive" : 0,
    "reportsExecuted" : 0,
    "reportsFutureMapSize" : 0
  },
  "memoryStat" : {
    "heapBytes" : 0,
    "directBytes" : 0
  },
  "oneMinRate" : 0,
  "registrations" : 1,
  "active" : 0,
  "activeWeek" : 0,
  "activeMonth" : 0,
  "connected" : 0,
  "onlineApps" : 0,
  "totalOnlineApps" : 0,
  "onlineHards" : 0,
  "totalOnlineHards" : 0
}
{
  "commands" : {
    "response" : 0,
    "redeem" : 0,
    "hardwareConnected" : 0,
    "register" : 0,
    "login" : 1,
    "hardwareLogin" : 0,
    "loadProfile" : 2,
    "appSync" : 2,
    "sharing" : 0,
    "getToken" : 0,
    "ping" : 1,
    "activate" : 0,
    "deactivate" : 0,
    "refreshToken" : 0,
    "getGraphData" : 0,
    "exportGraphData" : 0,
    "setWidgetProperty" : 0,
    "bridge" : 0,
    "hardware" : 0,
    "getSharedDash" : 0,
    "getShareToken" : 0,
    "refreshShareToken" : 0,
    "shareLogin" : 0,
    "createProject" : 0,
    "updateProject" : 0,
    "deleteProject" : 0,
    "hardwareSync" : 0,
    "internal" : 0,
    "sms" : 0,
    "tweet" : 0,
    "email" : 0,
    "push" : 0,
    "addPushToken" : 0,
    "createWidget" : 0,
    "updateWidget" : 0,
    "deleteWidget" : 0,
    "createDevice" : 0,
    "updateDevice" : 0,
    "deleteDevice" : 0,
    "getDevices" : 2,
    "createTag" : 0,
    "updateTag" : 0,
    "deleteTag" : 0,
    "getTags" : 0,
    "addEnergy" : 0,
    "getEnergy" : 2,
    "getServer" : 0,
    "connectRedirect" : 0,
    "webSockets" : 0,
    "eventor" : 0,
    "webhooks" : 0,
    "appTotal" : 7,
    "mqttTotal" : 0
  },
  "http" : {
    "isHardwareConnected" : 0,
    "isAppConnected" : 0,
    "getPinData" : 0,
    "updatePinData" : 0,
    "email" : 0,
    "notify" : 0,
    "getProject" : 0,
    "qr" : 0,
    "getHistoryPinData" : 0,
    "total" : 0
  },
  "ioStat" : {
    "messagingActiveTasks" : 0,
    "messagingExecutedTasks" : 0,
    "historyActiveTasks" : 0,
    "historyExecutedTasks" : 1,
    "dbActiveTasks" : 0,
    "dbExecutedTasks" : 0,
    "getServerActiveTasks" : 0,
    "getServerExecutedTasks" : 0,
    "reportsActive" : 0,
    "reportsExecuted" : 0,
    "reportsFutureMapSize" : 0
  },
  "memoryStat" : {
    "heapBytes" : 0,
    "directBytes" : 16777216
  },
  "oneMinRate" : 0,
  "registrations" : 1,
  "active" : 1,
  "activeWeek" : 1,
  "activeMonth" : 1,
  "connected" : 0,
  "onlineApps" : 1,
  "totalOnlineApps" : 1,
  "onlineHards" : 0,
  "totalOnlineHards" : 0
}
{
  "commands" : {
    "response" : 0,
    "redeem" : 0,
    "hardwareConnected" : 0,
    "register" : 0,
    "login" : 0,
    "hardwareLogin" : 0,
    "loadProfile" : 2,
    "appSync" : 0,
    "sharing" : 0,
    "getToken" : 0,
    "ping" : 0,
    "activate" : 1,
    "deactivate" : 1,
    "refreshToken" : 0,
    "getGraphData" : 0,
    "exportGraphData" : 0,
    "setWidgetProperty" : 0,
    "bridge" : 0,
    "hardware" : 0,
    "getSharedDash" : 0,
    "getShareToken" : 0,
    "refreshShareToken" : 0,
    "shareLogin" : 0,
    "createProject" : 0,
    "updateProject" : 0,
    "deleteProject" : 0,
    "hardwareSync" : 0,
    "internal" : 0,
    "sms" : 0,
    "tweet" : 0,
    "email" : 0,
    "push" : 0,
    "addPushToken" : 0,
    "createWidget" : 0,
    "updateWidget" : 0,
    "deleteWidget" : 0,
    "createDevice" : 0,
    "updateDevice" : 0,
    "deleteDevice" : 0,
    "getDevices" : 2,
    "createTag" : 0,
    "updateTag" : 0,
    "deleteTag" : 0,
    "getTags" : 0,
    "addEnergy" : 0,
    "getEnergy" : 0,
    "getServer" : 0,
    "connectRedirect" : 0,
    "webSockets" : 0,
    "eventor" : 0,
    "webhooks" : 0,
    "appTotal" : 5,
    "mqttTotal" : 0
  },
  "http" : {
    "isHardwareConnected" : 0,
    "isAppConnected" : 0,
    "getPinData" : 0,
    "updatePinData" : 0,
    "email" : 0,
    "notify" : 0,
    "getProject" : 0,
    "qr" : 0,
    "getHistoryPinData" : 0,
    "total" : 0
  },
  "ioStat" : {
    "messagingActiveTasks" : 0,
    "messagingExecutedTasks" : 0,
    "historyActiveTasks" : 0,
    "historyExecutedTasks" : 1,
    "dbActiveTasks" : 0,
    "dbExecutedTasks" : 0,
    "getServerActiveTasks" : 0,
    "getServerExecutedTasks" : 0,
    "reportsActive" : 0,
    "reportsExecuted" : 1,
    "reportsFutureMapSize" : 0
  },
  "memoryStat" : {
    "heapBytes" : 0,
    "directBytes" : 16777216
  },
  "oneMinRate" : 0,
  "registrations" : 1,
  "active" : 1,
  "activeWeek" : 1,
  "activeMonth" : 1,
  "connected" : 0,
  "onlineApps" : 1,
  "totalOnlineApps" : 1,
  "onlineHards" : 0,
  "totalOnlineHards" : 0
}


Here is my server.properties file

#hardware mqtt port
hardware.mqtt.port=8440

#http, plain web sockets and plain hardware port
http.port=8080

#if this property is true csv download url will use port 80 and will ignore http.port
force.port.80.for.csv=false

#if this property is true redirect_command will use 80 port and will ignore http.port
force.port.80.for.redirect=true

#secured https, web sockets and app port
https.port=9443

#address to bind to. by default bounded to all interfaces
listen.address=

#by default server uses embedded in jar cert to simplify local server installation.
#WARNNING DO NOT USE THIS CERTIFICATES ON PRODUCTION OR IN WHERE ENVIRNOMENTS REAL SECURITY REQUIRED.
#provide either full path to files either use '.' for specifying current directory. For instance "./myfile.crt"
server.ssl.cert=
server.ssl.key=
server.ssl.key.pass=

#by default System.getProperty("java.io.tmpdir")/blynk used
data.folder=

#folder for logs.
logs.folder=./logs

#log debug level. trace|debug|info|error. Defines how precise logging will be.
log.level=info

#maximum number of devices allowed per account
user.devices.limit=50

#maximum number of tags allowed per account
user.tags.limit=100

#defines maximum allowed number of user dashboards. Needed to limit possible number of tokens.
user.dashboard.max.limit=100

#defines maximum allowed widget size in KBs as json string.
user.widget.max.size.limit=20

#user is limited with 100 messages per second.
user.message.quota.limit=100

#maximum allowed number of notification queue. Queue responsible for processing email, pushes, twits sending.
#Because of performance issue - those queue is processed in separate thread, this is required due
#to blocking nature of all above operations. Usually limit shouldn't be reached.
notifications.queue.limit=2000

#Number of threads for performing blocking operations - push, twits, emails, db queries.
#Recommended to hold this value low unless you have to perform a lot of blocking operations.
blocking.processor.thread.pool.limit=6

#this setting defines how often we can send mail/tweet/push or any other notification. Specified in seconds
notifications.frequency.user.quota.limit=5

#this setting defines how often we can send webhooks. Specified in miliseconds
webhooks.frequency.user.quota.limit=1000

#this setting defines how big could be response for webhook GET request. Specified in kbs
webhooks.response.size.limit=96

#maximum size of user profile in kb's
user.profile.max.size=128

#number of strings to store in terminal widget
terminal.strings.pool.size=25

#number of strings to store in map widget
map.strings.pool.size=25

#number of strings to store in lcd widget
lcd.strings.pool.size=6

#maximum number of rows allowed
table.rows.pool.size=100

#period in millis for saving all user DB to disk.
profile.save.worker.period=60000

#period in millis for saving stats to disk.
stats.print.worker.period=60000

#max size of web request in bytes, 256 kb (256x1024) is default
web.request.max.size=524288

#maximum number of points that are fetched during CSV export
#43200 == 60 * 24 * 30 - minutes points for 1 month
csv.export.data.points.max=43200

#specifies maximum period of time when hardware socket could be idle. After which
#socket will be closed due to non activity. In seconds. Default value 10 if not provided.
#leave it empty for infinity timeout
hard.socket.idle.timeout=10

#enable DB
enable.db=false

#enable raw data storage to DB
enable.raw.db.data.store=true

#size of async logger ring buffer. should be increased for loads >2-3k req/sec
async.logger.ring.buffer.size=2048

#when true - allows reading worker to trigger hardware even app is offline
allow.reading.widget.without.active.app=false

#when enabled server will also store hardware and app IP
allow.store.ip=true

#initial amount of energy
initial.energy=100000

#ADMINISTRATION SECTION

admin.rootPath=/admin

#used for reset password page and certificate generation.
#by default current server IP is taken. could be replaced with more friendly hostname.
#it is recommended to override this property with your server IP to avoid possible problems of host resolving
#server.host=test.blynk.cc

#used for fallback page for reset user password, in most cases it should be the same as server.host
#IP is not allowed here, it should be blynk-cloud.com for Blynk app
#or *.blynk.cc for private servers with own apps
restore.host=blynk-cloud.com

product.name=Blynk

#email used for certificate registration, could be omitted in case you already specified it in mail.properties
#contact.email=

#network interface to determine server's current IP.
#only the first characters of the interface's name are needed.
#the default setting eth will use the first ethX interface found (i.e. eth0)
net.interface=eth

#comma separated list of administrator IPs. allow access to admin UI only for those IPs.
#you may set it for 0.0.0.0/0 to allow access for all.
#you may use CIDR notation. For instance, 192.168.0.53/24
allowed.administrator.ips=0.0.0.0/0,::/0

# default admin name and password. that will be created on initial server start
admin.email=admin@blynk.cc
admin.pass=admin

Sorry to disturb, but I’m a novice in java server configurations, could you please help me check this?

If this works, then your servers email settings should be fine.