How to send Snowflake Cloud Data Platform query results using email? - email

I want to send an email from Snowflake Cloud Data Platform and attach the results of a query.
How can I do that?

Snowflake can send emails now with call system$send_email(). You can call this to send the results of your query.
Read more:
https://hoffa.medium.com/hey-snowflake-send-me-an-email-243741a0fe3
The basic block that allows you to send emails:
call system$send_email(
'my_email_int',
'felipe#example.com, dan#example.com, rajiv#example.com',
'This is the subject',
'This is the body'
);

Related

How to send an email with attachment using apex (PL/SQL) without storing the attachment in server

I wanted to send an email with attachment from the oracle apex workspace, currently i am using the APEX_MAIL package which includes (APEX_ATTACHMENT, APEX_EXPORT functions). But the issue is, we are creating an CSV file and adding it as a mail attachment while sending the email and the attachments are sometimes larger in size which are getting stored in server each time the mail is triggered. This issue is causing a regular maintenance for the DBA to clear the data in the server.
Can anyone suggest is there any alternative for the current approach in order to come out of the issue.
Thanks in advance.
I tried oracle APEX_MAIL but the attachment is saving in database, please provide the alternate approach for the solution.
If you are generating the attachment CSV in the procedure as a BLOB variable, you can use it as described here. The only difference would be you should send your blob variable for p_attachment parameter.
For example:
apex_mail.add_attachment(
p_mail_id => l_id,
p_attachment => v_CSV, --the CSV file that you generated and assigned to a variable of type BLOB
p_filename => l_filename,
p_mime_type => l_mime_type,
p_content_id => l_content_id );
If you do not generate the CSV file in the package yourself, another approach would be using an intermediate table where you save your attachment file and having a scheduled job that clears that intermediate table on a specified basis. (You can clear the table after the mail is sent but for the logging/reporting it would be better to keep the attachments for a while I believe).

Laravel Swift add UUID

I'm sending mass messages with custom messages per subscriber, when I get the bounce-back I use my own cocktail to read the STMP emails.
What I haven't figure it out is how to add a unique ID for each email that is sent out, so in my bounce-back I can read the email's code and look for that particular ID, currently when I read the bounce I look for the recipient email compare to what I have based on creation date plus the email...
Is not efficient and 20 emails out of 1K or so gets lost cuz I can't find in bounce the headers due to some servers custom messages although it does return headers but I have nothing to compared with...
So is there a way to add this UUID in Swift services? I have seen that Swift is adding its own UUID but I haven't been able to retrieve it, when the message is sent I want that UUID so that I can save it and then latter I can read it from the bounces...
So, if I can't retrieve it, can I add my own?
I wanna have a relation email and UUID that was use when that message was sent.
$message_out = (new \Swift_Message($out->subject))
->setFrom($out->from_email, $out->from_name)
->setTo($out->email)
->setBody($content, 'text/html')
->setReplyTo('noreply#foo.com', 'No reply');
$message_out->send($mensaje_mail, $errors_sent);
Is this a header I can add the retrieve it in the bounce-back messages?
Thank you.

Nifi Email ConsumeIMAP filter by subject, from , to and date

Using ConsumeIMAP to read emails from an Inbox and trying to select only emails that have
- attachment to download
- sent "From" xyz#yahoo.com
- send "To" abc#gmail.com
- Have "Daily" in their subject
- at 8 am EST
Please let me know if it can be set in any component. I tried to use EvaluateJsonPath, ExtractEmailHeaders and RouteonAttribute but no luck yet.
It sounds like you have been exploring the correct path. You should be able to achieve this using a flow consisting of:
ConsumeIMAP >> ExtractEmailHeaders >> RouteOnAttribute
ConsumeIMAP will download messages from the email server and create a single FlowFile for each message, storing the email message raw bytes in the FlowFile contents.
ExtractEmailHeaders attempts to parse a FlowFile's contents as email (must be RFC-2822 compliant), extract email headers, and write each header field to a FlowFile attribute, including:
email.headers.from.*
email.headers.to.*
email.headers.subject
email.headers.sent_date
Note that ExtractEmailHeaders is not doing any filtering, just populating FlowFile attributes based on the FlowFile content, thus making the FlowFiles more easily routable downstream in the flow. Start just by creating a flow that has these two processors and verify that the output of the ExtractEmailHeaders processor meets these expectations. If not, its possible the email messages are malformed or not RFC-2822 compliant.
After you have successfully sent email FlowFiles through ExtractEmailHeaders, you can do the filtering using one or more RouteOnAttribute processors using the NiFi Expression Language to define your match conditions, e.g.:
${email.headers.subject.contains("Daily")}
If you have verified that your flow is working correctly through ExtractEmailHeaders, but the filtering in RouteOnAttribute is not working as expected, make sure your attribute expressions and assumptions about email header values (e.g., capitalization, datetime format) are correct. Consult the Apache NiFi Expression Language Guide and if you have specific questions relating to the expression language itself, search here or post another question on that specifically.
I hope this helps!

Bulk email with multiple attachment using SMTP

I need a program that will be used to send email using SMTP from a local machine. I need to send about 2000 emails.
The emails addresses are located in a MS Excel document with unique ID numbers. The attachments are in a separate folder with unique ID numbers same as the excel folder.
Every recipient will receive the same email with different attachment according to the ID number.
Is there any free or low cost program available out there that will achieve the goal?
If not, what is the best and quickest way to write a program like this?
Example of MS Excel Data:
DWEL1859 jack#bla.com
DSYD1514 caleb#bla.com
DSYD1738 jen#bla.com
DNSW2736 shown#bla.com
DPRE2510 roger#bla.com
Example of zip file names:
DNSW2736.zip
DPRE2510.zip
DSYD1514.zip
DSYD1738.zip
DWEL1859.zip
Use PHPMailer with couple of any DB server (i.e. MySQL) and PHP script containing some trivial logic. Write me on email (see accaunt) if you will need help within realization.

Mirth losing data in mapper variables

I have a database reader channel set up that actually reads the database at 10 second intervals and sends to a web service just fine. We get a valid response from the wsdl.
However, I need to update the database record so that it is flagged as having been processed. in this case we are simple changing a field from 100 to 101. However, when I try to update the field OR send an email containing ANY data that has been stored into mapper variables I get nothing. The database does not update. Emails send blanks for fields.
When I go into the channel messages for processed messages I can see good data in the Raw Message and Encoded Message tabs. There are no values in the Mappings tab.
Any suggestions on troubleshooting?
The Run-on-Update statement does not have access to the channel map, as it runs after message Encoding (and even the post-processor, I believe).
It DOES have access to the globalChannelMap and the responseMap. Put your new ID in the globalChannelMap and you should be good to go.
If you also want to send an email, would recommend you instead add an SMTP Writer destination (e.g., SMTP writer), which will have access to any channelMap variables created in a 'Destination 1'; as well as the globalChannelMap.