我在使用mandrill API处理ruby时遇到问题,我不确定是否缺少ruby / api理解我是否存在问题mandrill api。
我有这个方法发送一个带有mandrill的电子邮件,然后我使用从mandrill.messages.send
返回的id再次拨打api来调用mandrill来获取电子邮件标题message-id
所以我可以将其存储在db表中。
为什么我的ID明显存在时会收到错误Mandrill::UnknownMessageError (No message exists with the id '64fba1cce24942dea1ada4f905fd7871'):
,如日志事件的评论中所示?
# Sends an email to all users for the account_id on the issue
def send_email
require 'mandrill'
...
mandrill = Mandrill::API.new Mandrill::API_KEY
# Email contents
message = {
:subject => self.name,
:from_name => self.account.subdomain,
:text => self.description,
:to => [{
:email => user.email,
:name => user.name
}],
:text => self.description,
:from_email => "noreply@myapp.com",
:headers => {
'reply-to' => 'update@myapp.com'
}
}
results = mandrill.messages.send message # Send email through mandrill
# Loop through results of sent email
results.each do |result|
logger.debug "result id = #{result['_id']}" # LOGS result id = 64fba1cce24942dea1ada4f905fd7871
logger.debug "result = #{result}" # LOGS result = {"email"=>"tomcaflisch@gmail.com", "status"=>"sent", "_id"=>"64fba1cce24942dea1ada4f905fd7871", "reject_reason"=>nil}
id = result['_id'] # Mandrill's internal id from api call results that sent the email
# CAUSES Mandrill::UnknownMessageError (No message exists with the id '64fba1cce24942dea1ada4f905fd7871'):
info = mandrill.messages.content id # Get info for sent email with a specific mandrill id
end
end
答案 0 :(得分:1)
我认为你只需要给它一点时间。
答案 1 :(得分:0)
我在messages.info(id)上面临同样的错误。
但是,搜索('*')会查找已发送但未提供正确状态信息的所有邮件。
我认为当调用messages.info(id)时,下面的gem代码片段会获得500状态(而不是200):
def call(url, params={})
params[:key] = @apikey
params = JSON.generate(params)
r = @session.post(:path => "#{@path}#{url}.json", :headers => {'Content-Type' => 'application/json'}, :body => params)
cast_error(r.body) if r.status != 200
return JSON.parse(r.body)
end
此外,gem代码托管在bitbucket而不是更常见的github上。不知道如何在那里提出问题以获得支持。
抱歉没有多大帮助,但我认为我应该分享我的经验,以便更好地了解问题。