我正在使用mailgun API向用户帐户发送电子邮件.我一直在检查mailgun日志以检查发送状态.我的问题是,当发送电子邮件到Gmail和雅虎时一切正常.它不适用于hotmail.我已经检查了hotmail中的垃圾文件夹.我找不到电子邮件.以下是hotmail电子邮件帐户的已发送状态的mailgun日志.
02/24/14 04:44 AM已发送:decodingtool@sandboxunique.mailgun.org→vinodkumar.u93@outlook.com'欢迎!Outlook Test'
请帮我解决这个问题.提前致谢.
我正在使用Mailgun HTTP API从rails应用程序发送电子邮件.但我无法呈现邮件程序视图.这是我的邮件课程.
class MailgunMails < ActionMailer::Base
def send_complex_message
data = Multimap.new
data[:from] = "Excited User <postmasters@#{@@domain}>"
data[:to] = "alice@example.com"
data[:subject] = "Hello"
data[:html] = File.open("#{Rails.root}/app/views/mailgun_mails/send_complex_message.html.erb", 'r').to_s.html_safe
## also tried
data[:html] = render(template: "send_complex_message.html.erb")
response = RestClient.post "https://api:#{@@private_key}"\
"@api.mailgun.net/v2/#{@@domain}/messages", data
response = JSON.parse(response)
end
end
Run Code Online (Sandbox Code Playgroud)
但是抛出:
NoMethodError:nil的未定义方法`each_byte':NilClass
如何使用Mailgun API的邮件程序视图.
PS:我知道有很多宝石可以使用带有rails的mailgun但是没有一个像API那样提供全部功能.
如果有任何替代方法使用rails视图从api发送电子邮件,我正在等待答案.我只是不知道该怎么做(即使它不使用actionmailer)
完整的错误跟踪
NoMethodError: undefined method `each_byte' for nil:NilClass
from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:307:in `block in escape'
from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/core_ext/string/output_safety.rb:177:in `gsub'
from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/core_ext/string/output_safety.rb:177:in `gsub'
from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:304:in `escape'
from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:623:in `escape'
from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:150:in `handle_key'
from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:143:in …Run Code Online (Sandbox Code Playgroud) 我试图通过他们的RESTful API利用Mailgun的交易电子邮件服务,但我无法使其工作.我可以通过SMTP发送电子邮件,但我更喜欢使用他们的API.
他们的文档为我提供了以下代码:
public static ClientResponse SendSimpleMessage() {
Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter("api",
"key-*****"));
WebResource webResource =
client.resource("https://api.mailgun.net/v2/DOMAIN" +
"/messages");
MultivaluedMapImpl formData = new MultivaluedMapImpl();
formData.add("from", "Excited User <mailgun@DOMAIN>");
formData.add("to", "bar@example.com");
formData.add("to", "bar@example.com");
formData.add("subject", "Hello");
formData.add("text", "Testing some Mailgun awesomness!");
return webResource.type(MediaType.APPLICATION_FORM_URLENCODED).
post(ClientResponse.class, formData);
}
Run Code Online (Sandbox Code Playgroud)
显然我需要某种REST客户端来利用这段代码,但我无法在网上找到任何适合我的东西.有人可以一步一步地向我解释我是如何做这项工作的.我正在使用Eclipse,JAVA EE,No Maven
我为Mailgun创建了一个子域名mail.example.com,并添加了他们告诉我要添加的所有DNS设置(TXT,CNAME,MX).
在mail.example.com上添加MX记录后,我在Mailgun设置中添加了一个路由,该路由捕获发送到something@mail.example.com的邮件并转发到我的Gmail,并且一切正常.
我如何捕获邮件来到something@example.com(根域,而不是子域)?
我是否只在根域添加MX记录(mxa.mailgun.org和mxb ..)?
我正在尝试设置我的域名以通过Mailgun和Cloudflare接收电子邮件,我认为我真的最接近但无法使其正常工作.
在Mailgun中,我已经验证了所有DNS:
我认为问题在于Cloudflare,配置子域(Mailgun建议我创建mg.mydomain.com)
我没有任何与子域相关的记录(mg.mydomain.com).我有什么改变吗?
此外,我已经在mailgun中设置了一个Route,将传入的电子邮件重定向到我的电子邮件地址.
提前致谢!
我试图用mailgun发送电子邮件,但他们不会发送,我不知道为什么,因为我根本没有任何错误.
这是我的代码:
mail.php:
'driver' => env('MAIL_DRIVER', 'mailgun'),
Run Code Online (Sandbox Code Playgroud)
services.php:
'mailgun' => [
'domain' => env('sandbox1e...60.mailgun.org'),
'secret' => env('key-146...419'),
],
Run Code Online (Sandbox Code Playgroud)
EmailController.php:
public function send($email, $uuid = null)
{
if($uuid == null){
$uuid = User::get()->where('customer_email' , $email)->first()->email_confirmed;
}
return Mail::to($email)->send(new ConfirmEmail($uuid));
}
Run Code Online (Sandbox Code Playgroud)
ConfirmEmail.php:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ConfirmEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public $uuid;
public function __construct($uuid)
{
$this->uuid = $uuid; …Run Code Online (Sandbox Code Playgroud) 我正在使用其API的批量发送功能通过Mailgun发送一组电子邮件,其调用方式如下:
rv = requests.post(
"https://api.mailgun.net/v3/%s/messages" % mailgun_domain,
auth=("api", mailgun_key),
data={"from": sender,
"to": recip_vars.keys(),
"subject": subject,
"bcc": bcc_addr,
"text": "%recipient.text%",
"html": "%recipient.html%",
"recipient-variables":json.dumps(recip_vars)})
Run Code Online (Sandbox Code Playgroud)
其中recip_vars是收件人地址键入的批处理变量的字典.
在发送到该bcc地址的副本中,recip_vars尚未进行替换.
bcc地址是否需要以不同的方式指定,以便该副本包含替换,如果是,如何?
我有一个使用Google Cloud DNS的域名.我的SPF记录不适用于mailgun域验证
v = spf1 include:spf.protection.outlook.com include:_spf.google.com include:mailgun.org~all
有人面临同样的问题吗?
谢谢
我正在尝试使用 mailgun 发送电子邮件,并在此电子邮件中附加两个或更多文件:
public static JsonNode sendComplexMessage() throws UnirestException {
HttpResponse<JsonNode> request = Unirest.post("https://api.mailgun.net/v3/" + YOUR_DOMAIN_NAME + "/messages")
.basicAuth("api", API_KEY)
.queryString("from", "Excited User <USER@YOURDOMAIN.COM>")
.queryString("to", "alice@example.com")
.queryString("cc", "bob@example.com")
.queryString("bcc", "joe@example.com")
.queryString("subject", "Hello")
.queryString("text", "Testing out some Mailgun awesomeness!")
.queryString("html", "<html>HTML version </html>")
.field("attachment", new File("/temp/folder/test.txt"))
.asJson();
return request.getBody();
Run Code Online (Sandbox Code Playgroud)
这个例子来自 Mailgun Docs,但它只发送单个文件。我需要发送多封电子邮件。
任何帮助表示赞赏。
服务器:数字海洋
Ubuntu 16.04
Laravel 5.8
我无法使用mailgun.com从laravel发送电子邮件
在Digital Ocean中,我在防火墙上打开了所有传出端口,在Digital Ocean中,我具有用于TXT和MX记录的正确DNS设置。我在域registar上拥有正确且经过验证的DNS记录,并且mailgun在所有域名上都带有绿色的选中标记
config / mail.php
return [
'driver' => 'mailgun',
'host' => 'smtp.mailgun.org',
'port' => 587,
'from' => [
'address' => 'orders@domain.com',
'name' => 'Company Name'
],
'encryption' => 'tls'),
'username' => 'orders@mg.domain.com',
'password' => 'xxxxd663hd02j727bb2eefd1ea38bbe0-58bc211a-670xxxx'
];
Run Code Online (Sandbox Code Playgroud)
config / services.php
'mailgun' => [
'domain' => 'https://api.mailgun.net/v3/mg.domain.com',
'secret' => 'xxxxehbe8v25g3374e5as3ff32a45995-39bc661a-4716xxxx',
],
Run Code Online (Sandbox Code Playgroud)
控制者
use Illuminate\Support\Facades\Mail;
$data = [
'email' => 'email@yahoo.com',
'name' => 'Bob Smith'
];
$body_data = [
'id' => '1234'
];
Mail::send('emails.shipped', $body_data, …Run Code Online (Sandbox Code Playgroud) mailgun ×10
php ×3
java ×2
laravel ×2
actionmailer ×1
bcc ×1
cloudflare ×1
dns ×1
email ×1
hotmail ×1
laravel-5.8 ×1
mailing-list ×1
python ×1
rest ×1
spf ×1
spring ×1