How to enable applications to send email from google container engine - email

I am using a third party app in google container engine. It expects SMTP to be configured on default port(25) of localhost.
Since I cannot configure SMTP URL for the application and google cloud doesn't allow usage of SMTP ports, is there any way by which I can send emails from GKE.

If you are using Kubernetes, you can send mails by adding a sidekick Emailrelay container to your pod.
Emailrelay can run as-a-proxy. It listens on port 25 of localhost and forwards mails to an external SMTP server. It also supports authentication with outbound server and STARTTLS. Sample command will be like
emailrelay --no-daemon --as-proxy external.smtp.server:<PORT> --client-tls --client-auth /path/to/smtp/auth
Credentials file needs to be in format
LOGIN client username password
where, 'username' and 'password' should to be xtext encoded.
To overcome google cloud limitations, external server needs to accept SMTP requests on custom port.

Related

Sending mail using GCP on private network

More than a simple question-answer, this is more of a recommendation post. Want to see what ideas I have to work with. I am working on porting my company's work to the cloud (GCP) Most of this work is in the form of a pipeline. I'd like to notify completion via email.
The company I work for has a private network. And so the only way to use their mail config is to send it through their internet, and so, cannot use their SMTP-config from GCP.
What's the best way around this?
I'm looking into creating a VPN between GCP and our local network, however, that may not be possible (IT restrictions)
Do I have any other options?
EDIT
What an SMTP Relay work? This guy.
By default, Compute Engine allows outbound connections on all ports but port 25,so if you need to send an email from the instance you have to use port 465 or 587.
GCP explecitely recomends using other third-party tools such as SendGrid, Mailgun, and Mailjet because they offer a free tier package, you can skip all that and connect your instance to Gmail SMTP Relay Service. You will need a Google Account to connect (gmail or Gsuite).
Instructions to configure the Google Account are HERE , I tested sending emails from my MySQL server and Debian 9

send/receive mail from OWIN self-host webapp with custom domain

I have a domain, a Console Application with OWIN self-host.
The Console app host on AWS EC2 server windows server 2012.
My mail feature of server is sending Verification Mail
I've google many owin mail send or receive infomation,
but all of them are smtp/pop3 on google or some other smtp/pop3 server.
Is it possible to do send / receive mail in a console with current ip or custom domain?
I've try method.
Use hMailServer:
No luck in this. can't send/receive any mail, and set gmail for add smtp and pop3,
but fail.
the error msg: "We were unable to locate the other domain. Please contact your other provider."
Use AWS SES:
Still fail on this.
AWS SES need vail domain with anyaccount#domain, but i have no mail feature on my server.
Use my gmail:
Connect gmail need SSL. I have no SSL.
And research hours for host ssl on OWIN self-host,
Is there other solution for this?
I set a DNS MX Record from my DNS provider.
Now,I can send/receive mail with hamilserver and gmail smtp/pop3.
not best solution, but my problem solved.

How can I encrypt the Node-RED email login?

I'm using Node-RED in IBM's Bluemix. There are nodes to get email in and send email out. However, the email credentials do not seem to be encrypted when sent over the internet. I'm a bit concerned about that. Is there a way to find email receive and email send nodes for Node-RD where they login to the email server using TLS (or SSL)?
If you configure the email nodes to point at SSL/TLS ports then they will connect via a secure channel.
Also I believe that if the mail servers support the STARTTLS command then they will upgrade the connection once connected.

A way to forward or intercept smtp mail request to localhost?

Wondering if we have options for a failing smtp mail at "localhost" after changing DNS host.
The problem setup is this:
SMTP mail is being sent from a server, with mail being configured on the server itself. Originally, server was host of DNS domain as well as web app.
Using JavaMail, a request is sent to "localhost" without any authentication
The DNS settings have changed, server hosting web app is no longer the "from" email address
The Java web app cannot be modified and is still sending to "localhost"
Question: Do we have any options?
I'd like to intercept the "localhost" smtp mail request and forward it along to our domain's mail server, with new credentials, but am unsure if that is possible. A stand-alone script to watch for those requests?
We did receive the suggestion to edit our DNS settings on the new hosting and add "MX" and "A" records, but that would require a change of source code, which is not an option at this time.
Thanks!
If there's no SMTP server running on localhost, and you just want to redirect mail to another mail server without authentication, you could use a simple "proxy/tunnel" using something like the "netcat" program.
If there is an SMTP server running on localhost, you might be able to configure it to forward all messages to your other mail server.
Otherwise, is it possible to change the properties used by JavaMail in your web app, without changing the source code? For example, do the properties come from a file or from System.getProperties()?

How to configure an Internet mail server to use with IIS website

I am looking for a little direction to my problem. Short story, I have a website hosted on a web server. I pay a yearly subscription. This year I am planning on taking it off and hosting it internally. I already backed up, restored, and installed all necessary components (on Windows BTW with IIS, PHP, and MySQL). The site works great internal and by IP address externally through a firewall. (IP address for now until my web host subscription expires, then I will forward and register DNS).
But now this is my problem, my website has email functionality which works on my providers server. I want to install a local mail server for my website that will wind up sending and receiving emails through my website. I am lost here. No sure which path I should take. I have installed and used Exchange 2003 in the past just for internal domains, nothing for internet AND internet.
Anyone with ideas, links, suggestions? I see that IIS does support SMTP virtual servers, is this a possible route? If so, what about POP3 or IMAP (incoming) server solutions?
Thanks
Edit
---Update On Situation---
So far I have configured a local exchange server that works with my local webserver. I then created a CNAME in my web host DNS zone for my IP address. I created a simple subdomain for my site redirected to my home web server. Everything works great, internal email through Exchange 2003 from website on IIS, redirected DNS names, almost there. Now I just need to create Internet Mail functionality in Exchange. Went through the Exchanges wizard to "open system" for Internet mail, created new SMTP connector and ....nothing for external mail test. Failed! Thought everything was configured properly. I also tried to open all ports on firewall, 25 and 110.
I'd recommend using something like PostMarkApp to send transactional email from the website, and use hosted email (Google Apps for Domains) for your email. Its a pain to run a real mail server.
Link to Exchange Internet mail SMTP connector configuration:
Configure Exchange Internet Mail SMTP Connector
Well, I did figure it out. I was on the right path and everything was working but I just configured my client wrong and my ISp blocked port 25, duh. CHanged port to unused 366. But here is a little tip for anyone that may need to figure this out in the future.
1)Setup install IIS with default SMTP and NNTP virtual servers.
2)Install Exchange into organization. Internal naming convention doesn't really make a difference between internal to externally if you are behind a firewall. Basically this means you don't have to create a seperate zone in DNS if using this for a seperate domain hosted elsewhere. Hope this didn't confuse anyone.
3)Right click on server name in Exchange System Manager and go to Internet Mail Wizard
4)If you want your clients to hold a different domain email address than your internal you can setup in exchange through
Exchange System Manager >> Recipients >> Recipient Policies
Then add a Masquerade in Default SMTP Virtual Server
5)Have a gmail Internet SMTP connector set to smtp.gmail.com as smart host with a gmail email account settings and TLS checked
6)Default SMTP VS set with outbound port 587 and TLS checked
If you need to change SMTP ports too, don't forget to change not just firewall but also inside Exchange.