在maingun API入门的C#选项卡中,我找到以下代码.
public static RestResponse SendSimpleMessage() {
RestClient client = new RestClient();
client.BaseUrl = "https://api.mailgun.net/v2";
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 <me@samples.mailgun.org>");
request.AddParameter("to", "sergeyo@profista.com");
request.AddParameter("to", "serobnic@mail.ru");
request.AddParameter("subject", "Hello");
request.AddParameter("text", "Testing some Mailgun awesomness!");
request.Method = Method.POST;
return client.Execute(request);
}
Run Code Online (Sandbox Code Playgroud)
当我google这个类的名字时,我在不同的上下文中找到了几个对这个类的引用.但是,我似乎无法在mailgun网站,谷歌或MSDN上的任何地方找到RestRequest类的完全限定名称来查找它的文档.
任何人都可以指出这个类定义在哪里?
在找不到mailgun文档中我的问题的解决方案后,我将解释我在寻找什么.
今天我使用phpList发送我的新闻通讯(它工作得很完美!),我有HTML页面,我只是包含在phpList应用程序中发送出去.(我正在使用SMTP方法发送消息).我想知道我是否可以对mailgun做同样的事情(肯定可以,但是如何?),是否可以只包含我的HTML页面的路径来发送它?(我没有兴趣在脚本中输入我的html代码,它必须在路径中,否则我对使用mailgun没兴趣).
看看我的mailgun php代码如下:
$result = $mgClient->sendMessage("$domain",
array('from' => 'My Business Name <me@samples.mailgun.org>',
'to' => 'name-1@gmail.com, name-3@gmail.com, name-3@gmail.com',
'subject' => 'Issue Feb 2014',
'text' => 'Your mail do not support HTML',
'html' => '<html>Inline image: <img src="cid:Pad-Thai-1.jpg"></html>',
'recipient-variables' => '{"name-1@gmail.com": {"first":"Name-1", "id":1}, "name-2@gmail.com": {"first":"Name-2", "id": 2}}'),
array('inline' => 'Pad-Thai-1.jpg'));
Run Code Online (Sandbox Code Playgroud)
我有一个名为的数组元素'html',我想包含我的HTML页面的路径(如果不可能,我可以把它放在哪里?).我只是不能将我的整个HTML代码包含在这个html数组元素中,因为它是如此广泛.
但是,mailgun声称自己很容易,也很棒,这就是我想改变的动机.
是否可以在Mailgun列表中设置"reply-to"标题字段?虽然对话有时很好,但人们对来自某个特定列表的邮件量感到恼火,其中受访者忽略了将邮件发送到某个电子邮件地址并点击回复的指令,导致包含诸如此类内容的数十条(或更多条)邮件"得到它了!" 或者"我来了!" 只有一个人需要看到回应.
对于这个特定的列表,理想的情况是将允许的发件人限制在少数人,但由于他们都没有使用像Gmail或独立的电子邮件客户端那样好的服务(无法建立额外的SMTP登录),我已经没有找到任何限制愚蠢的方法.有谁知道如何做到这一点?
Mailgun建议为子域创建DNS(TXT,MX,..)记录,但是稍后配置可以通过根域发送和接收状态.我在我的注册商和Mailgun(添加域名,设置路由等)中为mail.example.com创建了所有必要的步骤.我现在可以收到并发送电子邮件到配置的example@mail.example.com.
我现在需要更改什么才能在example@example.com上发送和接收?注册商,邮件枪和gmail的smtp设置(通过mailgun从gmail发送)有哪些必要的更改?
非常感谢你!
我试图处理来自Mailgun bounce webhook的http帖子消息.当将其发送到Mailgun的Postbin服务时,当然会找到所有数据.但我现在将POST发送到我的localhost服务器进行开发,我得到的只是空的json数组.我使用Test Webhook.
除了我们的主要服务之外,意图是保持这种简单.那是因为我开始使用nodejs/expressjs创建独立的webservice作为中继来接收来自Mailgun的电子邮件退回的POST消息,并通知管理员有关退回的电子邮件地址.
现在我无法弄清楚为什么我没有获得与Postbin中可见的数据相同的数据.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mailgun = require('mailgun-js')({apiKey: 'key-...', domain: 'mymailgundomain.com'});
app.use(bodyParser.urlencoded({
extended: true
}));
function router(app) {
app.post('/webhooks/*', function (req, res, next) {
var body = req.body;
if (!mailgun.validateWebhook(body.timestamp, body.token, body.signature)) {
console.error('Request came, but not from Mailgun');
res.send({ error: { message: 'Invalid signature. Are you even Mailgun?' } });
return;
}
next();
});
app.post('/webhooks/mailgun/', function (req, res) {
// actually handle request here
console.log("got …Run Code Online (Sandbox Code Playgroud) 所以我正在使用Laravel 5.1并尝试与Mailgun集成.嗯,这很容易,但现在我正在尝试从我的应用程序发送自定义变量以及我的电子邮件.
我实际上是因为他们的"新方向"而从Mandrill转换我们的应用程序.有了它们,我可以通过电子邮件标题提供变量和标签,但使用Mailgun,只有在通过SMTP发送时才有效.在Laravel中,Mail::send()使用API调用,所以理论上我会在那里添加元数据"v:my-custom-data" => "{"this_id": 123}",但我想避免改变那样的核心类.
我也考虑过使用Bogardo/Mailgun,但后来我必须更换所有Mail::send()s Mailgun::send(),然后我无法在本地发送电子邮件(基于环境的电子邮件驱动程序),然后该应用程序将与Mailgun"结婚".
有人这样做过吗?如果我不清楚,请告诉我.
2 天前,当我从它的 API 检索事件时,我开始从 mailgun 收到一个新的状态代码 602
返回的响应有
"delivery-status": {
"attempt-no": 8,
"message": "Too old",
"code": 602,
"description": "",
"session-seconds": 0
}
Run Code Online (Sandbox Code Playgroud)
“太老”在这里究竟是什么意思?我找不到有关错误代码的任何文档。
我正在使用Mailgun发送交易电子邮件(活动门票),所有电子邮件都发送到Outlook/Hotmail垃圾邮件,我想避免这种情况.我添加了SPF和DKIM记录,没有任何作用.我该怎么做才能避免垃圾邮件过滤器(实际上,我不会发送垃圾邮件.用户在注册活动时会触发交易电子邮件)
Client client = Client.create ();
client.addFilter ( new HTTPBasicAuthFilter ( "api", "MI_API_KEY" ) );
WebResource webResource = client
.resource ( "MAILGUN_URL" );
MultivaluedMapImpl formData = new MultivaluedMapImpl();
formData.add ( "from", "hola@peewah.co" );
formData.add ( "to", "csacanam@outlook.com" );
formData.add ( "subject", "Camilo, welcome to the event" );
formData.add ( "html", "<h1>Camilo thank you for your registration in the event</h1>") );
formData.add ( "text", "Camilo thank you for your registration in the event" );
ClientResponse clientResponse = webResource.type ( MediaType.APPLICATION_FORM_URLENCODED ) …Run Code Online (Sandbox Code Playgroud) Mailgun告诉我建立一个TXT记录mg.mydomain.com用的值v=spf1 ...加上CNAME用于记录email.mg.mydomain.com与价值mailgun.org.
我这样做了,mailgun验证我的域名没有问题.问题是,当我发送电子邮件时,某些接收邮件服务器拒绝我的电子邮件,并显示消息"发件人地址被拒绝:未找到域名".我很确定这是因为"mg.mydomain.com"不存在 - 我没有CNAME它.但是,我无法创建CNAME它,因为它已经用于TXT记录.
所以现在我不知道该怎么做.我可以把这个v=spf1东西放在一个不同的 TXT记录中,以便我可以释放它mg. CNAME,这样发送者验证可以在这些挑剔的服务器上运行吗?
我似乎无法找到关于如何将Sendgrid Web API集成到Ruby on Rails应用程序的分步教程.我对此很陌生,所以也许我错过了一些明显的东西.
我想使用Sendgrid Web API而不是smtp传递方法(mailgun在这里讨论了Web API对SMTP方法的好处:https://documentation.mailgun.com/quickstart-sending.html ,我是认为Sendgrid会有相同的好处,或者我可能会在以后切换到mailgun).
安装sendgrid gem(https://github.com/sendgrid/sendgrid-ruby)后,文档告诉我"使用SendGrid API Key创建一个新客户端",我可以通过两种方式完成:
require 'sendgrid-ruby'
# As a hash
client = SendGrid::Client.new(api_key: 'YOUR_SENDGRID_APIKEY')
# Or as a block
client = SendGrid::Client.new do |c|
c.api_key = 'YOUR_SENDGRID_APIKEY'
end
Run Code Online (Sandbox Code Playgroud)
具体在我的应用程序中,我应该把这段代码?我应该把它放在我的邮件程序,我的应用程序邮件程序或config/environments/production.rb文件中吗?
我看了一下本教程,介绍了如何设置Mailgun API:https://launchschool.com/blog/handling-emails-in-rails
根据本教程,看起来该行client = SendGrid::Client.new(api_key: 'YOUR_SENDGRID_APIKEY')实际上应该进入邮件程序方法本身.请参阅下面的launchschool.com示例(可能会使用sendgrid信息替换mailgun特定信息):
class ExampleMailer < ActionMailer::Base
def sample_email(user)
@user = user
mg_client = Mailgun::Client.new ENV['api_key']
message_params = {:from => ENV['gmail_username'],
:to => @user.email,
:subject => 'Sample Mail using Mailgun …Run Code Online (Sandbox Code Playgroud)