I have used default mail() function to send email it sends emails to yahoo successfully but on gmail my emails are going to spam folder due a verification link, if I remove that link then goes to inbox
like is like this
domain.com/abnd.html?code=asdjkahsjkdhkasjghdksghdkjgsakjdg
if remove code then works, with code it goes to spam on gmail.
please help
Could be a number of factors:
Maybe the actual domain name or part of the URL is affecting the overall spam score
Is your email valid HTML and/or and have proper headers
Does the IP address sending mail have a valid PTR record
Are there additional headers being included in the email by the server that you may not want
There are a lot of good resources and helpful things you can use from the AOL Postmaster site including Technical Policy Requirements for Sending Mail to AOL.com, and the feedback loop.
Also see Google Bulk Sender Guidelines for more.
Related
I have a wordpress website, I sent a newsletters email to 88 subscriber one time, all the 88 emails delivered well. After that immediately I was unable to send any email contains cgees.com link in the email body.
If I send any email with any links inside without mentioning cgees.com/...., all emails reach their destination, but when including cgees.com/... they just don't reach although it say " sent ".
I checked the spam folders and no emails there, tried to send to lot of domains ( yahoo, hotmail, gmail, and other domains ) and no email delivered at all, I also tried to send email directly from website, outlook and webmail and all of them say " sent " but no emails delivered.
I tried to send an email contains cgees.com from my personal hotmail email and the email delivered normally. its only happening when I try to send from my domain email addresses.
Can any body give me a hope solving this issue?
You can use a tool like MXTool.com to check about your domain to see if it has any issues. As for emails not reaching there is a paid service like ReturnPath that can let you know what went wrong where.
Hope that the help you needed.
Cheers
I am using CI library for email.
$this->load->library('email');
And my mail function is.
$this->email->clear();
$this->email->set_mailtype("html");
$this->email->to($user_info[0]['email'] );
$this->email->from('admin#workerbee.com');
$this->email->subject($data['news_letter_info'][0]['subject']);
$this->email->message($data['news_letter_info'][0]['template_body']);
$this->email->send();
All values are coming correctly and mail is also delivering. But it is ended up in spam folder in gmail. Can anyone have any idea why this mail is counted as spam. What are the reason for a mail to be spam.
There are really many reason that might explain why an email ends up in the spam folder of your favorite mail client (web based or not) :
your server is in an ip blacklist
your emails contain keywords that are triggering a spam filter
you're sending spam
your mail server is misconfigured and sending out emails that look like spam
you are sending emails containing only images
your server doesn't use DKIM and SPF to authenticate email (see this webmaster SE question)
Many other reasons I don't remember ;-)
Jeff Atwood also wrote a nice article on his blog about good practices for send email through code.
As for some places to check if your email looks like a spam here are two I've found :
http://www.contactology.com/check_mqs.php
http://www.emailspamtest.com/
I have a web app which needs to send emails to clients 'From' staff email addresses. What's the best way to prevent my messages from being flagged as spam?
For instance, if I own charles#gmail.com, I'd like to be able to send mail "From" that address with PHP in my App, without getting the "This message may not have been sent by...." message.
Right now I'm just using the mail() function within PHP, with Headers for the From, Return Path, and X-Mailer variables.
I'm generally pretty confused by everything I've read so far about SPF and DKIM, so I appreciate any advice. Thanks.
This is a very lengthy subject with lots of things to consider.
The most important rule is to not use HTML and to send only correct mails that people want, and that the recipients do not flag as spam theirselves.
For instance, if I own
charles#gmail.com, I'd like to be able
to send mail "From" that address with
PHP in my App, without getting the
"This message may not have been sent
by...." message.
If you own a gmail address you could just sent the messages via gmail's SMTP service, but keep in mind that gmail has a 500 email sent limit. Below is a topic describing how to use gmail's SMTP server with the popular PHPMailer.
Right now I'm just using the mail()
function within PHP, with Headers for
the From, Return Path, and X-Mailer
variables.
Outsourcing this is probably the way to go using for example:
http://sendgrid.com/
We also offer a Free Plan with 200
Email Credits per day.
To read pricing visit http://sendgrid.com/pricing.html
http://elasticemail.com/
No monthly committments, no minimums,
no limits. Just pay for what you use
at $0.001 / email or less.
http://aws.amazon.com/ses/
Email messages are charged at $0.10
per thousand.
http://aws.amazon.com/ses/pricing/
http://www.cloudsmtp.com/
http://postmarkapp.com/
Just to name a few which are very cheap to use without any hassle/setup.
If instead of using the mail() function, you use an SMTP mailer such as the PEAR mailer package then you can send the mail using google's own SMTP servers. This will require you to provide the correct credentials to the google account you wish to send from. This should avoid the issue you are having.
One of the first things you need to ensure is that the email "From:..." really is from your server e.g your_mailings#yourcompany.com and it must exist and be a valid email on the server where the script works. You should try setting the sendmail user at the top of your script (assumes Linux server):
ini_set('sendmail_from', 'your_email#your_server.com');
Then you add a "Reply-To:" header and use your staff addresses perhaps and recipients will at least seem to have got an email that can be replied to. Without that you probably won't even get as far as being spam, you will get blocked on the way there.
This thread shows some of that and note the comments on PHPMailer - it is a good way to handle mailing and I have found it more successful than simple mail();
PHP mail form isn't working
I am using phpmailer to send email. I need to know how to hide or mask sender email address
You can specify any sender email address anyway, since SMTP by itself does not place any requirements on sender email addresses.
If the actual SMTP server you use places restrictions on email addresses (e.g. corporate servers which do not allow sender emails outside of the company domain) there's no way around that, unless of course you can influence the mail server configuration.
Update:
You say in a comment that you want to use gmail to send email where the sender's address is not a gmail address. There is no way to do that.
This is a rare situation you have here... if you do not have a mail server you can still tell PHPMailer to send from a different address just set the From attribute of the PHPMailer object to the address you want. But Wait! if your server doesn't exists, the client can't verify the account and then your mail will more likely be deleted (moved to spam in the more benevolent scenario). If you are trying to mimic third party mail, I'll help you no futher.
Note: Your mail server may be valid but clients are still unable to verify it, and thus you are getting mails delivered to spam or deleted. Check "Must Read" to below to have some inside on how to solve this.
On the other hand, if you already have a mail server, then tell PHPMailer you want to use it, set the Host and Port attributes to your domain name and port respectively. The same if you want to use an account form a different server, remember to set the attributes Username and Password correctly, you may also need to set SMTPAuth = true; and SMTPSecure = 'ssl'; depending on the server. [Note: Username and From may differ]
Now, if you want to use an account from Gmail, you could easily set an alias in Gmail to send as another account [Go to Settings-> Accounts And Import -> Send mail as -> (click) Send Mail From Another Address], that can be the case if you have a mail server but you cannot afford to have it online, you will need to start your server so you can receive the confirmation code Gmail generates to verify your account. Check recommended read for PHP side configuration details.
Lastly if for some rare circunstancies you can't tell PHPMailer to use your mail server, but you do in fact have one, and that one is able to recieve the mail... you can use AddReplyTo('me#example.com', 'My Name'); Most clients will understand that any reply to the message must be (unless explicitly defined by the user) directed to "me#example.com" in this case.
Disclaimer: I take no responsibility of any harm result of the use of the method I mention here, such as (but not limited to) your mail account getting banned.
Must read:
Coding Horror on sending mail via code
Recommended read: PHPMailer Tutorial (old version)
No need (neither a good way) to hide or mask whatsoever.
I assume you already know how to use the class you are talking about.
You probably have some variable for sending email, like
var $From = "someguy#whatever.com";
you can type whatever you want into that email address. Gmail dont care what email things is sent from.
And no, this dosent sound very legit.
One more thing: Gmail requires a gmail account to relay mails. Its no problem, it wont be visible.
You want to "show the company email address as sender" but you "didn't (sic) have any email server"?
Can anyone actually send you email at your company email address? If so, use that server which is hosting your email to send out from.
If you don't really have a company email address, then I suggest you get a gmail address like companyname#gmail.com and just send from that. Otherwise the email will appear as spam to a great many of your recipients.
Now, if the people you are about to send an email to actually signed up to be on your mailing list then you can use a third party application like Constant Contact to do your broadcasts from.
If they haven't, then I suggest you not send an email at all.
in mail headers you can have both a Sender: and a From: header which in most mail clients is displayed as either just the From or in some cases Sender on behalf of From, using this way is a nice and clean way to be able to send From a different mail address then the actual Sender mail server
This is highly illegal.
var $From = "someguy#whatever.com";
Is the only option your have for trying to hide email address. But no matter what your email will be inscribed with IP. Someone who knows what they are doing will still be able to trace the email back to the source.
i am trying to send email using PHP scripts... however, the recipient is receiving it in his/her SPAM folder -this is not the desired result (I would like to have it sent directly to their inbox so that I don't have to warn them to look in their SPAM folder).
below is the code I use to send the email using PEAR... what changes can I make to prevent the emails from going into the SPAM folder?
send("test.user#gmail.com", $headers, $body);
?>
In general, email is classified as spam or not spam on the receiving end, not the sending end - otherwise, spammers would simply say that all of their messages aren't spam, completely defeating the purpose. Thus, you can't just force a message to go to a sender's inbox.
However, what you may need to do is see if the machine that you're using to send mail is currently listed on any spam blocklists, and if so, take the necessary steps to remove it from those blocklists. The most common is probably Spamhaus.
How to increase the chance that the receiver doesn't mark an email as spam has been discussed quite some times here on SO. E.g.
How do you make sure email you send programmatically is not automatically marked as spam?
But there may be some tips specific to pear's Mail package on how to implement these steps (so I wouldn't consider this a duplicate ...yet).
You can purchase a dedicated IP address for your domain to patch this problem almost. After installing a dedicated static IP,all your email will have unique permanent sender ID...
GMail and other top mail services will list your email in Inbox...But yahoo and some other won't mind it....