mailgun一个强大且适合开发者使用的(群)发邮件服务
mailgun一个开发人员的电子邮件服务,强大的API,使您能够轻松发送,接收和跟踪电子邮件。
每个月可免费发送10000封邮件,可以添加1000个域名,每封邮件都有跟踪日志,简单明了的管理界面。
官网
注册步骤
1) 访问地址 https://app.mailgun.com/new/signup/
填写相关信息,点击注册。
2)注册成功后,到需要到注册邮箱点击验证链接。需要验证手机号码。
3)验证成功后,就可以使用了。特别要注意,新注册的用户有发件速度限制。
添加域名
注册成功后,我们来添加自己的域名。
1)访问地址 https://app.mailgun.com/app/domains/new
填写要绑定的域名,然后点击添加。
本文演示域名位 mailgun.somecolor.cc
2)点击添加后,页面显示要解析的内容。
有TXT 、MX、CNAME,按照提示依次添加解析。
3)解析添加完成,然后验证一下。验证成功后,就可以看见关键的信息了。
有的运营商生效可能比较慢。
4)通过CURL 发送邮件到 163邮箱。速度非常快,但是进垃圾箱。
替换自己的API KEY 试一试。
注意:QQ邮箱可能无法接收或者接收速度非常慢。后面我们介绍一下。
#复制你的API KEY 、API Base URL、 FROM EMAIL curl -s --user 'api:key-a5b555827e4a134623c5caxxxxx' \ https://api.mailgun.net/v3/mailgun.somecolor.cc/messages \ -F from='Mailgun Sandbox <postmaster@sandboxed092a69c6d645b8a7c204427fc0a681.mailgun.org>' \ -F to='ma <xxxxx@163.com>' \ -F subject='Hello ma' \ -F text='Congratulations ma, you just sent an email with Mailgun! You are truly awesome!'
演示代码
mailgun 强大的地方就是API。官网首页推荐语就是 :The Email Service For Developers
其官网的文档有详细的介绍。
有兴趣可参阅: https://documentation.mailgun.com/api_reference.html
>>> 远程验证电子邮箱是否可用
以下是官方给的示例代码,支持目前主流的开发语言。
直接替换你的API KAY / API Base Url 等信息即可使用了。
CURL
# Try our API. Copy & run this in your terminal. curl -s --user 'api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0' \ https://api.mailgun.net/v3/samples.mailgun.org/messages \ -F from='Excited User <excited@samples.mailgun.org>' \ -F to='devs@mailgun.net' \ -F subject='Hello' \ -F text='Testing some Mailgun awesomeness!'
Ruby
开源项目:https://github.com/mailgun/mailgun-ruby
# Try running this locally. def send_simple_message RestClient.post "https://api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0"\ "@api.mailgun.net/v3/samples.mailgun.org/messages", :from => "Excited User <excited@samples.mailgun.org>", :to => "devs@mailgun.net", :subject => "Hello", :text => "Testing some Mailgun awesomeness!" end
Python
# Try running this locally. def send_simple_message(): return requests.post( "https://api.mailgun.net/v3/samples.mailgun.org/messages", auth=("api", "key-3ax6xnjp29jd6fds4gc373sgvjxteol0"), data={"from": "Excited User <excited@samples.mailgun.org>", "to": ["devs@mailgun.net"], "subject": "Hello", "text": "Testing some Mailgun awesomeness!"})
PHP
开源项目:https://github.com/mailgun/mailgun-php
# Try running this locally. # Include the Autoloader (see "Libraries" for install instructions) require 'vendor/autoload.php'; use Mailgun\Mailgun; # Instantiate the client. $mgClient = new Mailgun('key-3ax6xnjp29jd6fds4gc373sgvjxteol0'); $domain = "samples.mailgun.org"; # Make the call to the client. $result = $mgClient->sendMessage("$domain", array('from' => 'Excited User <excited@samples.mailgun.org>', 'to' => 'Mailgun Devs <devs@mailgun.net>', 'subject' => 'Hello', 'text' => 'Testing some Mailgun awesomeness!'));
JAVA
# Try running this locally. public static ClientResponse SendSimpleMessage() { Client client = Client.create(); client.addFilter(new HTTPBasicAuthFilter( "api","key-3ax6xnjp29jd6fds4gc373sgvjxteol0")); WebResource webResource = client.resource( "https://api.mailgun.net/v3/samples.mailgun.org/messages"); MultivaluedMapImpl formData = new MultivaluedMapImpl(); formData.add("from", "Excited User <excited@samples.mailgun.org>"); formData.add("to", "devs@mailgun.net"); formData.add("subject", "Hello"); formData.add("text", "Testing some Mailgun awesomeness!"); return webResource.type(MediaType.APPLICATION_FORM_URLENCODED). post(ClientResponse.class, formData); }
C#
# Try running this locally. public static RestResponse SendSimpleMessage() { RestClient client = new RestClient(); client.BaseUrl = "https://api.mailgun.net/v3"; client.Authenticator = new HttpBasicAuthenticator( "api","key-3ax6xnjp29jd6fds4gc373sgvjxteol0"); RestRequest request = new RestRequest(); request.AddParameter("domain", "samples.mailgun.org", ParameterType.UrlSegment); request.Resource = "{domain}/messages"; request.AddParameter("from", "Excited User <excited@samples.mailgun.org>"); request.AddParameter("to", "devs@mailgun.net"); request.AddParameter("subject", "Hello"); request.AddParameter("text", "Testing some Mailgun awesomeness!"); request.Method = Method.POST; return client.Execute(request); }
GO
参考开源项目:https://github.com/mailgun/mailgun-go
Nodejs
参考开源项目:https://github.com/mailgun/mailgun-js
推荐插件
QQ邮箱拒收
网上有好多人吐槽发送给QQ邮箱的邮件直接被拒收。https://www.v2ex.com/t/331526
发送邮件时提醒如下:
ESP throttling: postmaster@mailgun.somecolor.cc → xxxxx@qq.com 'Hello ma' Server response: 550 Ip frequency limited. http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000725
产生原因
由于mailgun 共享IP发送给QQ邮箱的邮件太多。QQ邮箱直接全部拒收。而网易邮箱处理方式是直接进垃圾箱。
解决方案
- 买固定IP,然后向腾讯买IP白名单。
- QQ的邮箱直接使用其他服务发邮件(看下文其他免费服务)。
- mailgun 对于发送失败的邮件会自动重新发送,等到0点后,QQ就能收到邮件了。
其他同类服务
Amazon SES 免费套餐,月发送 62000 封电子邮件。
https://aws.amazon.com/cn/ses/pricing/
阿里云邮件推送服务,每个账户每日200封免费邮件。
https://www.aliyun.com/product/directmail?spm=5176.8064714.321187.pricedetail1111.MpRlp1
SendCloud 搜狐旗下付费服务
MandRill 付费服务
https://www.mandrill.com/pricing/
SendGrid 免费试用30天
30天试用,能免费发送40000封邮件
Postmark 免费试用
https://postmarkapp.com/pricing
本文参考文献:
http://www.tuicool.com/articles/mAFV7f
版权声明:
作者:我是小马甲~
链接:https://51.ruyo.net/4188.html
来源:如有乐享
文章版权归作者所有,未经允许请勿转载。
R1ght here