I want to send email over SMTP using c++ code, how should I handle it in generic way that a random user don't have to handle SMTP server specification? (Windows)
Without specification means user should not have to write IP address of SMTP server etc.
Install an smtp relay server on the same host where the code runs and set the SMTP server in the code to 'localhost'.
Jasper's answer is correct. You need to install an SMTP server on the host that your C++ program is running on. One option is qmail. See www.lifewithqmail.org for more info, including a step-by-step guide on how to install it.
Most linux SMTP servers (including qmail) will create a smylink /usr/sbin/sendmail which you can use to send an outgoing message. In general, the syntax is:
/usr/sbin/sendmail recipient#domain.tld < /path/to/file/containing/the/message
See the help file for more info, including flags that you can use to specify the envelope sender, etc.
You can send a message from your C++ program by doing a system call to /usr/sbin/sendmail similar to the above.
You could use Simple MAPI, but you need an email program supporting the MAPI-interface like Outlook.
Related
I have written a C++ server that send across mails over SMTP protocol asynchronously.
Now for the sake of testing I want to write some program/script that will help testers to verify if email is successfully received or not.
I looked for "mailx" utility, but could not figure out how to use it in shell script.
Is there any library that C++ provides or utility that linux has to verify email being received and check its contents?
I don't have too much experience programming in C++, but I need to build a basic application for sending state emails from a computer using windows or linux, and I've found that POCO C++ suppoorts both platforms, but I have a proxy http provider behind to filter unauthorized connections, so, how could I do it?.
You can't send SMTP e-mail through a HTTP proxy.
But you can make a HTTP connection to a website you control. And you can write a web-to-email script and put that on your website. E.g. your script can take a status message as a POST parameter and then send it out as e-mail.
Spammers often try to hack web-to-email scripts to send spam, so please make sure your script has a hard-coded destination e-mail address. That way the spammer can only send mail to you, not everyone else on the Internet. Whatever you do, don't pass the destination e-mail address as a parameter.
regarding web to email scripts - make sure you strip newlines from anything that ends up in email headers! (to prevent spammers from injecting headers)
I would like to create a mail sender on C++ (not Mail Client for eg. GMail). In this mailer I want to be able to change the headers also.
I have already downloaded and installed the POCO libraries, that might help (I found it on a similar anwser).
For example, what I would like is a command like below:
e-mailsend(to,headers,subject,message);
// Or something like:
email.send(to,headers,subject,message);
However, If possible, I would like to use a C++ Mail function not a system function (like mail-utils in unix).
If you need any more explanation please comment...
In your comments you asked for an option without an SMTP server.
SMTP requires an SMTP Server. The choice is that could send emails directly (e.g. to joe at yahoo.com on port 25) or to a SMTP server that will relay the message.
Ideally, you will want your own SMTP server locally (so your application is simpler and your SMTP server sends the messages in the background, handles retries, bounces and connection errors) and use a reputable SMTP service or an existing email account.
If you want to send spam, I'd strongly advise against it.
If you want to send a small number of messages that will be opened by people expecting those messages, use a normal account (Yahoo, GMail, Google Apps, etc) and if you find your application not responsive enough, install Postfix, Sendmail or whatever local SMTP server you like.
If you want to send a large volume of emails and you are sure those message won't get you targeted as a spammer, use an SMTP service, like SendGrid (note: they also have a web API that you might find easier to use than SMTP).
Depending on which of the above you need, I'm sure answering your original question with a recommendation for SMTP C++ clients (like POCO) with become simpler.
I have a some server which receives connections from clients.
So, what is the elemental way to send email? (without using any non-standard libraries).
And one more question:
if I have a complete php script to send email can I execute it from my C++ programm?
C++ doesn't have a standard library for communicating via SMTP. You may find a non-standard library that provides this functionality.
If you need to send an email in C++ without the use of a thirdparty library, you will need to write functions that can send SMTP commands through a socket to whatever mail server you wish to use.
Does anyone know how to send an email with an attachment(txt file) using a gmail as an smtp relayer in windows environment.I have looked at some sample code here but that was for the linux os. So far i could not find any sample code for windows.Help would be appreciated.
Google mail server will only accept secure connection, SSL or TLS. Here are the addresses and ports GMail uses: http://support.google.com/mail/bin/answer.py?hl=en&answer=13287
So, you need to use SSL/TLS-enabled socket like this one: CSslSocket - SSL/TLS enabled CSocket.
Or, if you want to implement SMTP over SSL yourself, using SChannel API, this sample will guide you through: C++ SSPI Schannel TLS example (this shows how to break through SSL and you are to complete with with SMTP plain text conversation sending an email).