从我的帐户发送的一些电子邮件被拒绝.这些是错误消息:
我的这个问题或他们(接收者)结束了吗?我该如何解决这个问题?
我只是想使用 Mailgun 从我的 Laravel 项目发送电子邮件,并按照官方文档中的步骤进行操作:https ://laravel.com/docs/9.x/mail#mailgun-driver
composer require symfony/mailgun-mailer symfony/http-client
当我尝试发送密码重置电子邮件来测试它时,它会抛出异常:
Class "Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunTransportFactory" not found
这是完整的堆栈跟踪:https ://flareapp.io/share/oPRKqyZ7#share
我不知道,但也许是因为这个项目最初是 Laravel 8 项目,一周前我将其更新到 Laravel 9。它是否试图在应用程序目录中找到 Laravel 9 附带的东西或其他东西,但我的项目没有?我不明白。
顺便说一句,如果有帮助的话;该项目使用 Jetstream 以及 Inertia.js 和 Vue.js。所以composer.json现在看起来像这样:
{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"php": "^8.0.2",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.2",
"inertiajs/inertia-laravel": "^0.5.4",
"laravel/framework": "^9.2",
"laravel/jetstream": "^2.4",
"laravel/octane": "^1.0",
"laravel/sanctum": "^2.14.1",
"laravel/tinker": "^2.7",
"sentry/sentry-laravel": "^2.11",
"symfony/http-client": "^6.0",
"symfony/mailgun-mailer": "^6.0",
"tightenco/ziggy": "^1.0"
},
"require-dev": …Run Code Online (Sandbox Code Playgroud) 当邮件有使用mailgun发送的附件时,我正面临问题.如果有人做过这件事,请回复.这是我的代码......
$mg_api = 'key-3ax6xnjp29jd6fds4gc373sgvjxteol0';
$mg_version = 'api.mailgun.net/v2/';
$mg_domain = "samples.mailgun.org";
$mg_from_email = "info@samples.com";
$mg_reply_to_email = "info@samples.org";
$mg_message_url = "https://".$mg_version.$mg_domain."/messages";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt ($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE, 0);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERPWD, 'api:' . $mg_api);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HEADER, false);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_URL, $mg_message_url); …Run Code Online (Sandbox Code Playgroud) 我想使用Mailgun通过API以编程方式发送/接收消息.
但我需要使用Thunderbird或其他邮件客户端提供一些邮箱.
例如,我想在以下位置拥有用户邮箱:
所有其他电子邮件将用于API发送/接收.
我无法将邮件转发给GMail,因为我需要从同一地址(sales@mydomain.com)回复.
请帮忙.
我设置了一个新帐户,但未验证我的域名.我想在继续验证和添加付款信息之前测试并确认邮件发送.
我尝试使用沙箱方法和api密钥(包括smtp)进行curl.我还尝试使用顶级帐户邮件地址作为收件人使用我的域名.但每次发送命令(curl和smtp)我都得到"Mailgun Magnificent API"响应 - 但没有邮件发送.到目前为止,Mailgun API看起来并不那么壮观......我已多次浏览文档,无法找到我可能做错的事情..
任何帮助深表感谢.
我使用以下内容发送适用于localhost而不是我的服务器的电子邮件.
// server
Meteor.startup(function () {
process.env.MAIL_URL="smtp://uername%40gmail.com:password@smtp.gmail.com:465/";
});
Run Code Online (Sandbox Code Playgroud)
我在我的日志中得到了跟随错误(似乎谷歌因某种原因阻止它,有没有办法阻止它?
[162.243.52.235] 534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 l10sm1017845qae.41 - gsmtp
at SMTPClient._actionAUTHComplete (/opt/meteor/app/programs/server/npm/email/main/node_modules/simplesmtp/lib/client.js:826:23)
at SMTPClient._onData (/opt/meteor/app/programs/server/npm/email/main/node_modules/simplesmtp/lib/client.js:329:29)
at CleartextStream.EventEmitter.emit (events.js:95:17)
at CleartextStream.<anonymous> (_stream_readable.js:746:14)
at CleartextStream.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at _stream_readable.js:401:7
at process._tickCallback (node.js:415:13)
Run Code Online (Sandbox Code Playgroud)
这是我认为发送的事件启动电子邮件发送.我知道meteor现在设置为使用mailgun,有没有办法修改它只是使用mailgun而不是meteor而没有process.env?
Template.forgotPassword.events({
'submit #forgotPasswordForm': function(e, t) {
e.preventDefault();
var forgotPasswordForm = $(e.currentTarget),
email = trimInput(forgotPasswordForm.find('#forgotPasswordEmail').val().toLowerCase());
if (isNotEmpty(email) && isEmail(email)) {
Accounts.forgotPassword({email: email}, function(err) {
if (err) {
if (err.message === 'User not found [403]') { …Run Code Online (Sandbox Code Playgroud) 我试图只向Bcc发送邮件但无法发送.下面给出的代码与To和Bcc一起正常工作,但是当我尝试仅使用Bcc发送时它失败了.我尝试用To传递空字符串,但没有工作.我正在使用mailgun php API.
function send_mail($email,$subject,$msg,$bcc)
{
$api_key="";
$domain ="";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'api:'.$api_key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/'.$domain.'/messages');
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'from' => 'Example <examle@examle.com>',
'to' => $email,
'bcc' => $bcc,
'subject' => $subject,
'html' => $msg,
'o:tracking' => true));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
send_mail($email, $subject, $msg, $bcc);
Run Code Online (Sandbox Code Playgroud) 我正在努力制作一个发送电子邮件的Mailgun API的AJAX调用.Mailgun上的文档说,发布请求应该发送到" https://api.mailgun.net/v3/domain.com/messages ".我已经包含了mailgun指定的api密钥(他们指示使用'api'的用户名).由于这涉及CORS,我无法通过错误:请求头字段Access-Control-Allow-Headers不允许授权.
但是,我已经检查了网络选项卡中的请求/响应,并且来自Mailgun的响应中的"Access-Control-Allow-Origin"被设置为"*"...这应该表明它应该允许它?(请参阅下面的请求/响应):我已经编辑了实际的域和我的API密钥.
Remote Address:104.130.177.23:443
Request URL:https://api.mailgun.net/v3/domain.com/messages
Request Method:OPTIONS
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:POST
Connection:keep-alive
Host:api.mailgun.net
Origin:null
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Response Headersview source
Access-Control-Allow-Headers:Content-Type, x-requested-with
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
Access-Control-Max-Age:600
Allow:POST, OPTIONS
Connection:keep-alive
Content-Length:0
Content-Type:text/html; charset=utf-8
Date:Fri, 20 Mar 2015 19:47:29 GMT
Server:nginx/1.7.9
Run Code Online (Sandbox Code Playgroud)
我的ajax调用代码如下所示,其中我将我的凭据包含在标题中,并将域包含在帖子应该去的地方.不知道是什么导致这不起作用.是因为我正在本地主机上测试吗?我认为,由于响应头中的"访问控制允许原点:*",这会产生重大影响.任何帮助将不胜感激!谢谢.
function initiateConfirmationEmail(formObj){
var mailgunURL;
mailgunURL = "https://api.mailgun.net/v3/domain.com/messages"
var auth = btoa('api:MYAPIKEYHERE');
$.ajax({
type …Run Code Online (Sandbox Code Playgroud) 目前我正在努力将Mailgun应用到我的rails应用程序中,但我似乎对最好的方法感到困惑.
我已经实现的方法是设置区域,添加gemfile,然后通过Active Job设置后台处理器.由于不确定这是否是最好的方法,我还没有设置后台处理器.
我已经看到其他资源说我应该简单地使用Heroku Add-on,然后使用额外的最小编码.我还想提一下,我有Devise设置,所以我不需要为典型情况发送电子邮件.
正如你所看到的,我在这一点上很失落,只是想了解哪种方法最好.如果您碰巧了解自己或有充足的资源可以使用,请告诉我=)
旁注:我也被告知"不要触发从ActiveRecord回调发送的电子邮件 - 从控制器执行此操作." 我写下来指的是什么时候到了,在这里我= P你同意这个说法吗?
我可以添加代码,如果它会有所帮助,但我很困惑哪些代码实际上有用...
非常感谢!
乔
编辑
还有一个问题:理想情况下,我希望能够向应用程序上的所有用户发送自定义电子邮件(IE:每周更新,新网站功能等).Mailgun甚至会成为这样做的正确方法吗?
我有一个MailChimp和Mandrill帐户,由于显而易见的原因,我正在从Mandrill迁移到Mailgun,但现在保留MailChimp.
MailChimp需要以下DKIM记录(CNAME):
k1._domainkey.example.com -> dkim.mcsv.net
Run Code Online (Sandbox Code Playgroud)
Mailgun需要以下DKIM记录(TXT):
k1._domainkey.example.com -> k=rsa; p=REDACTED
Run Code Online (Sandbox Code Playgroud)
但是这些DNS记录不能共存,因为它们具有相同的主机名.如何继续使用MailChimp(用于营销)并开始在同一域中使用Mailgun(用于交易电子邮件)?