Send email from web to server using PHPMailer SMTP protocol - smtp

Hi I'm newbie here and i have a simple php form and when user submit it the data will be insert in database and email is send to user using PHPMailer; now mine question is that if i send two consecutively emails that have time difference of 1 minute then why their receiving time difference to user is 15 minutes.
Code will be provided on request.
Thanks.

Might be because of server delay are you using a shared server or maybe you mailer is miss confined

Related

How to add new 'From' email id each time sending email using PostFix server

I am new to PostFix and have setup PostFix as a server recently. In the testing, PostFix is working fine and relaying the emails with 'From' email address stored in the PostFix credentials files likes admin#mydomain.com and password : xxxxxxx
My problem is: We have a web application that allows direct email sending feature between the website users. As User 1 can send email to User 2 (user2#example.com) and vise verse. But while sending emails using the PostFix server, the user2 will always receive the admin#mydomain.com instead of user1#example.com so the user2 can not reply on the email directly to the user1.
This problem is a bigger one as we have thousands of the users that are waiting for this feature. So if someone can help me configuring the PostFix server so that at the time of sending email, user can set their email id as the 'From' field of the email using any web form and the receiving user will get the email as the email was originally generated by user1#example.com so that he can reply directly to the user 1 on his email id.
I have done some research work on the PostFix about this problem but did not find much interesting one. The approach others followed are using the smtp_generic_maps but this can work only with a limited set of email ids stored in the >>/etc/postfix/generic. But we want this solution fully dynamic so that any user can add the FROM as his/her email while internally the email will be sent using the admin#mydomain.com in PostFix.
Early response is much appreciated.
Thanks
Finally I fixed this issue by using an Grails application which doesn't require for adding fixed emails in the PostFix.
Use the Grails Mail plugin and set PostFix server as the default Mail server.
Also add inbound connection in the Postfix so that other email services will not ban you.
As well as change the port from 25 to some other port as Port 25 is being used to send Trozen horses and spamming ..
I love PostFix now.. Enjoy free mail service for your small business.
Thanks

Is there a way to force GMail/Google Apps SMTP server to not store sent messages?

Perhaps a special command or message header in order to be able to tell Google to not store a message sent using their SMTP server in the respective user's Sent mailbox.
There is no way to prevent the message from being saved to Sent. However, you can connect via IMAP after the send and delete the message from the Sent folder. Assuming you are using OAuth authentication, the same scope you use for SMTP allows you to connect via IMAP.
I was also stucked in this kind of scenario some time back, for me I could not find any standard API to solve this. But as a workaround I have created a rule which deletes all the mails which appears in Sent Folder. But beware of IMAP protocol, it allows users to store their there sent messages in custom folders also.

Amazon SES sending duplicate emails

I have switched to using Amazon SES to send our transactional alerts from our asp.net system and I'm getting calls that people are receiving duplicate emails.
I have confirmed that our program is only sending the email once to each user.
I received one of these duplicates exactly 5 minutes after the first email was sent, making me think it is some sort of retry issue.
Is there a way to configure/fix this issue?
If it makes any difference, I am using the AWS SDK in asp.net and calling the AmazonSimpleEmailServiceClient.SendEmail call.
Amazon assigns a unique message ID to every email sent. Look in the full headers of the emails you received for an ID like the following:
0000012fea2d8375-85e23920-10cf-4d1b-b237-5dc13847b66c-000000#email.amazonses.com
If it is the same in both emails you got, then there is some sort of glitch between Amazon and the receiving SMTP server that is causing it to be resent. If the ID is different between the 2 emails, then you are sending it twice.

Sending emails through SMTP and testing

I've got a PHP app with an invitation system where users can invite other users to try the service. Internally we use google apps for our domain to send/receive emails (mydomain.com).
1) My question is, can I send emails from my server with the from address being invite#mydomain.com? I am worried about the emails being blocked/ignored by the destination server. I am aware that it is possible to send the emails by configuring my php installation to use google smtp server, but there is a limit of 500 emails a day, which is not very scalable.
I don't really know that much about sending emails and why/how they are blocked/considered spam. I'd appreciate any good advice/tips you can give me.
2) What is a good way to test to see if the email portion of my app is working without installing it on my live server. Can I just setup an smtp server on my desktop and send mails this way? Can you recommend any other good ideas for testing. I'll basically be sending just a few emails to my personal webmail accounts to make sure that everything works.
Thanks,
Bill
1) My question is, can I send emails
from my server with the from address
being invite#mydomain.com? I am
worried about the emails being
blocked/ignored by the destination
server. I am aware that it is possible
to send the emails by configuring my
php installation to use google smtp
server, but there is a limit of 500
emails a day, which is not very
scalable.
I don't really know that much about
sending emails and why/how they are
blocked/considered spam. I'd
appreciate any good advice/tips you
can give me.
There is a way track if mail has been bounced (there are more than 10 possible bounce reasons!). You can set the return-path header in your outgoing emails. Best practice is to specify a different mail address in the return-path. When e-mails are getting bounced for whatever reason, a notification will be sent to this address. Additionally you can have for example a (PHP) cron job that connects using IMAP to the bounced email account and do something with the bounced e-mails. This is a pretty reliable way to track the status of your sent emails.
Additionally, in order to minimize the chance your e-mail will get blacklisted you could think about signing your e-mails using a certificate (you can get one for free for personal usage. A commercial one may cost you around 25 dollars a year)
2) What is a good way to test to see
if the email portion of my app is
working without installing it on my
live server. Can I just setup an smtp
server on my desktop and send mails
this way? Can you recommend any other
good ideas for testing. I'll basically
be sending just a few emails to my
personal webmail accounts to make sure
that everything works.
You can actually send a test email from everywhere as long as the outgoing SMTP port (25) is not blocked. If you have an own smtp server with username/passwd authentication enabled, you will be able to send e-mails from everywhere using the these credentials/settings. In all other cases, you will have to use the smtp of your internet provider to send emails.
To address the second part (as Eric pointed out, you'll have better luck at serverfault.com with the first part), any locally hosted SMTP server should be able to do the trick, and there are plenty available for any given OS. Google can help you there.
The main thing you'll want from a local SMTP server is detailed logging. It's entirely possible that the local server could fail/refuse to deliver the message to its intended destination for any number of reasons (again, serverfault.com), but that's outside the scope of testing the code's delivery of the email to the SMTP server.
If it does properly forward the test message to you, great. But if it doesn't, you just want to be able to see in the server's logs that it received the message correctly and was able to process it. Whatever that processing accomplished is a separate issue.
For email testing I use Pappercut. It's easy to use but some antivirus may not like you opening port 25.
I use Dumbster for testing. I will catch the emails, then my test code can check the content.
To avoid spam, there are a number of things you have to do, and I'm not sure I've found them all. Make sure that your IP is registered, and that a reverse lookup returns the right domain.
1) Sending:
This is a good article describing some of the pitfalls around sending email http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html
Check out the comments too.
2) Testing:
Disclaimer - I work for the company behind the service linked to below.
If you would rather not set up your own smtp server you can use a hosted email testing service like Clickity
You can create as many test email addresses as you like or configure your app to point directly at our smtp server. You can then view the complete email on our site as part of your manual testing or automate the tests it via our API.

Retrieve SMTP response of a mail

Is it possible to retrieve the SMTP response of a mail. For example, I am sending a mail to non existing email id. Surely our server will send us a mailer daemon failure mail to our mail id. I need to capture that failure mail.
How its possible? please explain me. Some time we may enter more than one non existing email id, so i have to retrieve all the failure mail alone for every corresponding emails
Please guide me!
Thanks in advance,
Praveen J
I think I understood your question correctly now. As I understand, you are writing an application to send mail. And in your application, whenever you send a mail, you also want verify that if mail was delivered and also if it was not delivered then you want to get hold of the failure message in your application. Is that how you mean?
Well, if that is how you mean, then I think it is impossible to track the mail status with your apllication code. For instance if you are using java sendMail in your apllication you can only ensure that the send happened from your code successfully(without any send exceptions like java.net.SocketException or javax.mail.MessagingException). But, you can never ensure if the mail really reached the recepient. i.e. you can never track in your application if the mail was rejected due to wrong recepient address or any other error like illegal attachment at receipient mail server or errors like blocked sender id etc.
That is because any such error condition will be communicated by the receipient mail server to the sending mail server the information of which is present in the sent mail's header.
Does that answer your question? (Or did I understand your question correctly? ;-))
I am not sure if I am getting your question right. If you send an email to any non existent address say xxx#gmail.com from your address yyy#yourhost.com, the mail server at gmail.com replies to the mail server at yourhost.com with failure message and reason, with your delivery address and you receive the fialure mail automatically. you don't have to do anything extra in this.
If you are talking about seeing mail headers, then it depends on which client you are using. For instace, if you are using MS outlook, you can right-click on the message and click options and then see internet headers section to get mail headers. If you are using some web based mail then i am sure there will some option to view detailed mail headers.
The bounced messages are going to return to a mailbox. You should be able to configure that mailbox by properly setting the headers on the messages you send out. You would then need to monitor that mailbox, or have that mailbox deliver the messages to your program.
I would suggest you consider using VERP for all messages you send out. It will make it much easier for you to identify which email address a particular bounce belongs too. To do this you would need control of your mail server though. It takes some work configuring things.
To answer the question with more detail you need to tell us how your are sending messages, what type of mail server you are running, and how much control you have over the mail server.
On Unix, you can use "procmail" for this. Procmail is a service which can intercept your mails and process them following rules.
If you can access your mail my IMAP, I suggest to look at the Python module imaplib.