我在 asp.net mvc 中使用 SendGrid。我使用此代码发送电子邮件:
var myMessage = new SendGridMessage();
myMessage.From = new MailAddress("john@example.com");
myMessage.AddTo("testing@something.com");
myMessage.Subject = "Subject";
myMessage.Text = "testing";
var credentials = new NetworkCredential("*********@azure.com", "");
Web transportWeb = new Web(credentials);
await transportWeb.DeliverAsync(myMessage);
Run Code Online (Sandbox Code Playgroud)
问题是电子邮件大约需要 5 分钟才能到达目的地。这是正常情况吗?如果正常的话我该如何减少这个时间?
我使用 GO,尝试通过 sendgrid API v3 发送邮件(https://github.com/sendgrid/sendgrid-go,无需邮件助手类)。但是当我使用这段代码时:
"content": [
{
"type": "text/html",
"value": "<html><head></head><body>Hello You link <a href="http://example.com/reschedule?id=12334">Click</a></body></html>"
}
],
Run Code Online (Sandbox Code Playgroud)
我收到错误:
第400章
但这段代码可以正常工作:
"content": [
{
"type": "text/html",
"value": "<html><head></head><body>Hello!</body></html>"
}
],
Run Code Online (Sandbox Code Playgroud)
我认为特殊字符有问题,但我该如何解决它?谢谢你!
我将Nodejs与Express结合使用,并且正在通过Sendgrid发送电子邮件,但是Sendgrid正在更改href链接
var emailText = '<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body><a href="https://www.google.com">Here</a></body></html>'
var from_email = new helper.Email('contact@test.com');
var to_email = new helper.Email('contact@test2.com');
var subject = 'Test';
var content = new helper.Content("text/html", emailText)
var mail = new helper.Mail(from_email, subject, to_email, content);
var request = sg.emptyRequest({
method: 'POST',
path: '/v3/mail/send',
body: mail.toJSON(),
});
sg.API(request, function(error, response) {
if (error) {
console.log('Error response received');
}
console.log(response.statusCode);
console.log(response.body);
console.log(response.headers);
});
Run Code Online (Sandbox Code Playgroud)
当电子邮件到达时,将出现以下链接:
https://u4006412.ct.sendgrid.net/wf/click?upn=rOQ9fjZGp5r0JyNfoC02LbL.....
有人可以帮我解决这个问题吗?
我正在使用Url.Action生成一个绝对URL以通过电子邮件发送.链接在控制器内生成.
ConfirmLink = Url.Action(
"ConfirmEmail",
"Account",
new { userId = user.Id, code },
HttpContext.Request.Scheme
)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,在本地,我有这样的结果:
http://localhost:5102/account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D
Run Code Online (Sandbox Code Playgroud)
但我在staging/prod中没有域/ https协议的结果:
http:///account/confirm-email?userId=10&code=CfDJ8JH5BJKUsPZDnCLwFc3HSEHfe9Fk00NHiJqk36VbvkDbbV39AI7HY5m9pXVItwYE9%2B9ElTcnBSZiDNQ%2FmO5lx1tSnuvDmhzdzGlCQCfPQVe%2B21Nw03uNuBWoO8HCVivqzfudti579bWiaLW6PuuQQimn449YymVjgV3R36HeQID26jTmAxizDTqOsF1%2FvQc5Zw%3D%3D
Run Code Online (Sandbox Code Playgroud)
我正在使用ASP .NET Core "Microsoft.AspNetCore.Mvc": "1.1.0".
应用程序发布到IIS.
我想利用 Sendgrid 模板版本来支持多语言支持。
根据 Sendgrid文档:
一个模板一次只能有一个活动版本。如果您创建了一个包含不同 HTML 的新版本,您希望客户开始接收该版本,则需要将该版本设为“活动”。
因此,例如我有 2 个版本的模板:English(active)和Russian。因此,如果我想用俄语版本发送电子邮件,我需要在发送电子邮件之前激活俄语模板版本。
但我担心的是:如果我需要同时发送俄文和英文版本的电子邮件怎么办?Sendgrind 能否为 2 个同时请求提供合适的版本?
我在 Heroku 中创建了一个新的 Sendgrid 插件:
heroku addons:create sendgrid:starter
Run Code Online (Sandbox Code Playgroud)
之后,我进入我的Sendgrid账户,它说我的账户被暂停(我刚刚创建,它是如何暂停的?)
所以,我有一个绝妙的主意(不是!):我已经删除了插件并尝试再次创建它。现在我从 Heroku 收到以下错误:
An error was encountered when contacting the add-on partner to create sendgrid:starter: Error Provisioning User - User status - suspended
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
I'm trying to get a Rails 5.2 mailer working, but am coming across a Net::SMTPAuthenticationError - 535 Authentication failed: account disabled error on both localhost and my Heroku production environment.
The mailer looks like this:
class AdminNotificationsMailer < ApplicationMailer
default from: "liz@linchpinindustries.com"
def new_rfp(rfp)
@rfp = rfp
mail(
:to => "liz@linchpinindustries.com",
:subject => 'New RFP Alert!'
)
end
def new_contact_us(contact)
@contact = contact
mail(
to: "liz@linchpinindustries.com",
subject: 'New Contact Us Submission on LPI'
)
end
end
Run Code Online (Sandbox Code Playgroud)
With the trigger in …
我刚刚从 Mandrill 切换到 Sendgrid。使用标准 Sendgrid JAVA API 发送电子邮件时,电子邮件标题内容类型列为:
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)
我一直无法找到将其更改为 UTF-8 的方法,这是我发送正确编码的电子邮件的要求。这在使用 Mandrill 时效果很好。通过 Mandrill 发送在内容类型标头中保持原始源编码不变。我当前的代码基本上是使用这个 Sendgrid 示例代码:https ://sendgrid.com/docs/for-developers/sending-email/v3-java-code-example/
环境:
我的源文件都是用 UTF-8 编码的,我的项目是通过 Maven 构建的,maven-compiler-plugin 设置为
<encoding>UTF-8</encoding>
Run Code Online (Sandbox Code Playgroud)
我发布到 Sendgrid 的消息正文是 HTML,并且在 head 元素中设置了以下内容类型:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
使用 Sendgrid 的结果是邮件在 Gmail 中被剪掉了。这似乎是由于冲突的编码类型。即“邮件”标头表示 iso-8859-1,即使实际内容是 UTF-8。如果我理解正确,结果是字符编码不正确。
注意:我发送的是挪威语字符 ÆØÅ。
我尝试将消息正文转换为 ASCII 和 iso-8859-1。这样做的结果是邮件在 Gmail 中不再被剪裁,而是将 ÆØÅ 字符替换为问号(我知道 US_ASCII 不支持 ÆØÅ 字符)。我还尝试使用以下代码覆盖 Sendgrid 标头:
mail.addHeader("Content-Type", "text/html; charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)
但是那个键是保留的,不能被覆盖..
我还联系了 Sendgrid 支持。他们回复如下:
不幸的是,我们的系统将使用传递给我们的任何编码自动对正文进行编码。这意味着,如果该电子邮件中有 ISO-8859 字符的字符。然后身体将使用该编码。我们目前没有强制 UTF-8 编码通过我们传递的电子邮件正文的选项。 …
我正在尝试在 Heroku NodeJS 应用程序中设置 SendGrid 插件。我创建了 API 密钥并将其设置为环境变量。
整个 API 密钥类似于:SG.actualValue.bbb_cccccc
我做的第一个设置我将整个密钥设置为我的 SENDGRID_API_KEY 并且我收到了这个错误:
API 密钥不以 SG 开头。
因此,我意识到错误并取消设置环境变量并将其重新设置为整个键的 actualValue 部分。
但是,我仍然遇到相同的错误。我尝试再次做同样的事情或重新启动终端(实际上是整个笔记本电脑)。
这是我试图从 SendGrid 设置页面运行的测试代码:
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY)
const msg = {
to: 'test@example.com',
from: 'test@example.com',
subject: 'Sending with Twilio SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: '<strong>and easy to do anywhere, even with Node.js</strong>',
};
sgMail.send(msg);
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个新密钥并进行设置,但出现相同的错误。我尝试将其设置为整个密钥,但没有“.SG”或只是 bbb_ccccc 部分。先感谢您。
我刚刚注册了 SendGrid,我需要将这些(上图)SendGrid CNAME 记录添加到我的 Google 域中。问题是它没有告诉我在第一个字段(“@”)中放入什么。如果我将其留空,则会出现错误(见下图)。请帮忙。
PS:www根据Google Domains 帮助页面添加给我一个命名冲突,因为已经有一个带有www.