有没有办法使用SendGrid的SMTP集成API发送批量邮件?
以下是我的想法:我需要向订阅者发送大量电子邮件.由于SendGrid文档建议尽可能使用SMTP集成,我希望能够创建一个单一的SendGrid并让它根据电子邮件列表发送整个批量.我知道REST API可以实现这一点.
这甚至可以用SMTP吗?
我使用sendgrid发送电子邮件,它使用以下代码工作正常,但没有附件.
package sendgrid;
import com.sendgrid.Content;
import com.sendgrid.Email;
import com.sendgrid.Mail;
import com.sendgrid.Method;
import com.sendgrid.Request;
import com.sendgrid.Response;
import com.sendgrid.SendGrid;
import java.io.IOException;
public class SendEmail {
public static void main(String[] args) throws IOException {
Email from = new Email("test@example.com");
String subject = "Hello World from the SendGrid Java Library!";
Email to = new Email("shareef@gmail.com");
Content content = new Content("text/plain", "Hello, Email!");
Mail mail = new Mail(from, subject, to, content);
SendGrid sg = new SendGrid("SG.rIEh84OgQBybYEJcOMie1wd.AZqqdWNYXbOqTarUJcG-iSg0UtHJtCto4oe6tVzn6es");
Request request = new Request();
try {
request.method = …Run Code Online (Sandbox Code Playgroud) SendGrid开发QA环境的最佳方法是什么?我们希望非生产环境能够通过API存储和测试我们的电子邮件模板.SendGrid沙箱设置不允许实际发送电子邮件.
除非有更好的方法,否则我们计划以每月9.95美元的价格创建新的SendGrid基本帐户,允许最多40K的电子邮件.使用这种方法,我们的Dev和QA环境将拥有我们可以测试和部署的不同帐户.
如何使用sendgrid接收电子邮件,然后能够从我们的域中回复该电子邮件?就像有人发送电子邮件到contact@lessonshark.com,我们通过contact@lessonshark.com回复.
使用SendGrid发送电子邮件
在我的本地工作正常(下面的代码)没有源代码控制,只是一个与AzureWebsites相同代码的直接WebDeploy,下面的错误.SendGrid支持毫无头绪.
异常详细信息:System.Net.Sockets.SocketException:
[SocketException(0x271d):尝试以其访问权限禁止的方式访问套接字]
CodeScales.Http.HttpClient.Navigate(HttpRequest request,HttpBehavior httpBehavior)+772 CodeScales.Http.HttpClient.Execute(HttpRequest request)+45 SendGridMail.Transport.REST.Deliver(ISendGrid message)+115
public bool SendEmail(string from, string to, string subject, string content)
{
var myMessage = SendGrid.GenerateInstance();
// Setup the email properties.
myMessage.From = new MailAddress(from);
myMessage.AddTo(to);
myMessage.Text = content;
myMessage.Subject = subject;
var username = "#####";
var pswd = "#####";
var credentials = new NetworkCredential(username, pswd);
// Get REST instance for sending email.
var transportREST = REST.GetInstance(credentials);
// Send the email.
transportREST.Deliver(myMessage);
return true;
}
Run Code Online (Sandbox Code Playgroud) 如果这是一个愚蠢的问题,我很抱歉,但是我没有在本网站或其他网站上找到有关此问题的任何可靠信息.
话虽如此,我正在研究MVC 5 Web应用程序.我在ASP.net上关注本教程.
public async Task SendAsync(IdentityMessage message)
{
await configSendGridasync(message);
}
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"info@ycc.com", "Your Contractor Connection");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
Properties.Resources.SendGridUser,
Properties.Resources.SendGridPassword,
Properties.Resources.SendGridURL // necessary?
);
// Create a Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
} …Run Code Online (Sandbox Code Playgroud) 我有我在我的应用程序中使用的代码:
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"a@b.com", "AB Registration");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
ConfigurationManager.AppSettings["mailAccount"],
ConfigurationManager.AppSettings["mailPassword"]
);
// Create a Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
Run Code Online (Sandbox Code Playgroud)
它在这里被称为:
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{ …Run Code Online (Sandbox Code Playgroud) 我在 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 分钟才能到达目的地。这是正常情况吗?如果正常的话我该如何减少这个时间?
尝试使用个性化的替代品%body%.但是,我得到一个错误说Substitutions are limited to 10000 bytes per personalization.基本上,整个身体会因接受者而异.
是否有另一种有效的方式将不同的邮件发送给不同的收件人?
每个请求发送一封邮件会非常慢.
请注意:模板不是一个选项,因为邮件是根据用户的当前活动创建的.
Google Cloud Functions 允许您在触发时轻松激活函数(例如 Firebase 数据更改、HTTP 请求...)。
我正在寻找一种在用户发送(或通常回复)电子邮件地址时执行函数的方法。例如,我的仪表板发送了一封电子邮件,我想接收回复,解析内容并将其作为我仪表板中的评论上传到 Firebase。
我了解 Google 建议使用 Sendgrid。但是我不明白: - 如何在回复时设置触发器 - 如何阅读内容并设置阅读
我只在这里找到了如何发送电子邮件
python sendgrid firebase google-cloud-platform google-cloud-functions