标签: sendgrid

Rails 3.2在Sendgrid处理之前,电子邮件被延迟了11分钟

我使用Action Mailer和Sendgrid在Heroku上运行Rails 3.2应用程序以发送单个交易电子邮件.目前,当应用程序发送电子邮件时,Sendgrid不会收到请求,要求发送11分钟.在收件箱中查看收到的电子邮件时,时间将显示收到的时间,但如果您打开电子邮件,则会有时间(提前11分钟)生成电子邮件请求.这就是我在production.rb中所拥有的:

ActionMailer::Base.smtp_settings = {
:address        => 'smtp.sendgrid.net',
:port           => '587',
:authentication => :plain,
:user_name      => ENV['SENDGRID_USERNAME'],
:password       => ENV['SENDGRID_PASSWORD'],
:domain         => 'heroku.com',
:enable_starttls_auto => true
}


config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
Run Code Online (Sandbox Code Playgroud)

我从来没有遇到过Rails 4.0应用程序的这个问题,所以这是Rails 3.2的一个已知问题吗?

ruby-on-rails actionmailer heroku sendgrid ruby-on-rails-3

11
推荐指数
1
解决办法
4028
查看次数

Ruby on Rails的Sendgrid API

我似乎无法找到关于如何将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)

email ruby-on-rails devise sendgrid mailgun

11
推荐指数
2
解决办法
5234
查看次数

通过带有“&amp;”的 sendgrid 发送模板电子邮件时出现警告

我正在 sendgrid api v3 的帮助下发送电子邮件,但收到警告/错误:

包含字符 '、" 或 & 的内容可能需要使用三个括号 {{{ content }}} 进行转义

在我的 api json 中,我添加了一个包含该&字符的链接:

{"dynamic_template_data": {"link":"...&..."}}

在我的模板中,我使用三个括号{{{ link }}}

一切都按预期进行 - 电子邮件,包括。链接已发送 - 但我总是收到警告/错误。

我错过了 json 中的某些内容吗?

sendgrid sendgrid-api-v3 sendgrid-templates

11
推荐指数
1
解决办法
4198
查看次数

有没有办法通过 SendGrid API 调用检索动态模板生成的 HTML 电子邮件正文?

我们有一个站点,我们的代理输入一些数据,然后该数据通过 SendGrid 动态模板发送到客户端。

电子邮件内容包含大量基于输入数据的计算,因此我们希望我们的代理能够在将其发送给客户之前先预览电子邮件并验证内容。

有没有办法使用 SendGrid API 使用 json 对象发送请求,而不是将电子邮件发送给客户端,而是接收生成的电子邮件正文,以便我们可以将其显示给代理并让他们先查看?

sendgrid sendgrid-api-v3 sendgrid-templates

11
推荐指数
1
解决办法
5066
查看次数

Twilio SendGrid 电子邮件陷入处理困境

我正在尝试将 Twilio 电子邮件验证集成到我的应用程序中。这是代码:

 public EmailVerificationDto sendVerificationEmail(String recipient) {
        Verification verification = Verification.creator(
                        PATH_SERVICE_SID,
                        recipient,
                        "email")
                .setChannelConfiguration(
                        new HashMap<>() {{
                            put("template_id", TEMPLATE_ID);
                            put("from", SENDER_EMAIL);
                            put("from_name", "Puggle");
                        }})
                .create();

        return new EmailVerificationDto(
                verification.getTo(),
                verification.getSid(),
                verification.getStatus(),
                verification.getDateCreated().toLocalDate()
        );
    }
Run Code Online (Sandbox Code Playgroud)

我可以在仪表板上看到电子邮件,但它卡在处理过程中:

卡住

在此输入图像描述

java twilio sendgrid

11
推荐指数
1
解决办法
5775
查看次数

使用SendGrid SMTP集成批量电子邮件

有没有办法使用SendGrid的SMTP集成API发送批量邮件?

以下是我的想法:我需要向订阅者发送大量电子邮件.由于SendGrid文档建议尽可能使用SMTP集成,我希望能够创建一个单一的SendGrid并让它根据电子邮件列表发送整个批量.我知道REST API可以实现这一点.

这甚至可以用SMTP吗?

email smtp bulk sendgrid

10
推荐指数
1
解决办法
7053
查看次数

SendGrid传入邮件webhook - 如何保护我的端点

我目前正在使用SendGrid的Inbound Parse Webhook将电子邮件提供给我的应用程序.我已经能够通过将URL指向我的应用程序已公开的端点来使其工作.SendGrid只是以JSON格式HTTP POST请求的形式将电子邮件发送到此端点,我只是在内部处理每个请求.

我的问题是,现在我有它工作,我如何确保只有SendGrid才能使用这个端点?目前,任何人都可以使用此HTTP POST端点并假装已将电子邮件发送到应用程序.

我可以让SendGrid发送某种独特的密钥来识别自己吗?有没有办法可以通过IP地址限制?

endpoints webhooks sendgrid

10
推荐指数
1
解决办法
3407
查看次数

在 Node.js 中从 sendGrid 发送电子邮件时出现“UnhandledPromiseRejectionWarning: E​​rror: Forbidden”

我正在按照他们网站上的说明使用以下代码在我的 node.js 项目中集成 sendgrid

const sgMail = require('@sendgrid/mail')

const sendGridAPIKey = "API key"

sgMail.setApiKey(sendGridAPIKey)

const msg = {
 to: 'agrawalanuj751997@gmail.com',
 from: 'agrawalanuj751997@gmail.com',
 subject:'My first mail from node',
 text:"I'm sending myself an email"
}

sgMail.send(msg)
Run Code Online (Sandbox Code Playgroud)

我的日志中出现以下错误。我已经尝试了多个帐户的多个 API 密钥,但仍然遇到相同的错误。

(node:16043) UnhandledPromiseRejectionWarning: Error: Forbidden
at Request._callback (node_modules/@sendgrid/client/src/classes/client.js:124:25)
at Request.self.callback (node_modules/request/request.js:185:22)
at Request.emit (events.js:200:13)
at Request.<anonymous> (node_modules/request/request.js:1154:10)
at Request.emit (events.js:200:13)
at IncomingMessage.<anonymous> (node_modules/request/request.js:1076:12)
at Object.onceWrapper (events.js:288:20)
at IncomingMessage.emit (events.js:205:15)
at endReadableNT (_stream_readable.js:1154:12)
at processTicksAndRejections (internal/process/task_queues.js:84:9)
(node:16043) UnhandledPromiseRejectionWarning: Unhandled promise 
rejection. This error originated either …
Run Code Online (Sandbox Code Playgroud)

node.js sendgrid visual-studio-code

10
推荐指数
1
解决办法
4373
查看次数

Sendgrid:如何向电子邮件模板添加动态链接?

我试图在我的电子邮件模板中有一个链接,看起来像这样:

<a href={{url}}>click here</>
Run Code Online (Sandbox Code Playgroud)

上面的链接已通过添加“自定义”链接添加到“设计器”中。这个值就像我输入的 {{url}}。

我在 dynamic_template_data 中传递一个 url 值,如下所示:

const msg = {
  to: savedAdmin.email,
  from: process.env.EMAIL_ADDRESS,
  templateId: process.env.SENDGRID_NEW_ADMIN_TEMPLATE_ID,
  personalizations: [
    {
      to: [{email: savedAdmin.email}],
      dynamic_template_data: {
        name: savedAdmin.first_name,
        url: process.env.CMS_URL,
        email: savedAdmin.email,
        password: randomPassword,
      },
    },
  ],
};
Run Code Online (Sandbox Code Playgroud)

但是,当我在收件箱中收到邮件时,网址会呈现如下:

http://url9905.myweb.shop/ls/click?upn=BMmHdsRoNrbb0-2FMI-2BBVvCjpDiCceHLG5U2u5OCf29QV6iCtfuvZYId1FE95cTz9uyMY31z9fQ7iR-2BPgq-2FkquvxdAPC0oMKiLa3DRglYUSVP-2FRmYbDQ-2BdFGnczXk75K3Ym8rSodsrAy-2BfNDJwqA7RDeemPFjepjRsUdci9CA6Y0-....
Run Code Online (Sandbox Code Playgroud)

我如何让这个工作?

sendgrid sendgrid-api-v3

10
推荐指数
1
解决办法
3043
查看次数

10
推荐指数
1
解决办法
1679
查看次数