嗨,当我尝试安装SparkPost PHP库时,我遇到了这个问题:
问题1
- 请求的包sparkpost/sparkpost没有版本集(解析为1.0.0)可以通过sparkpost/sparkpost [没有版本集(解析为1.0.0)]来满足,但这些与您的要求或最小稳定性相冲突.
当我尝试执行此命令时出现:
composer require sparkpost/sparkpost
完整控制台输出:
You are running Composer with SSL/TLS protection disabled.
Using version ^2.0 for sparkpost/sparkpost
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package sparkpost/sparkpost No version set (parsed as 1.0.0) is satisfiable by sparkpost/sparkpost[No version set (parsed as 1.0.0)] but these conflict with your requirements …Run Code Online (Sandbox Code Playgroud) 这里解释了如何在发送内联内容时指定这些属性,但在发送存储的模板时据说它们是被禁止的。
我尝试通过指定模板的 ID 以及禁止的属性:reply_to、from.name和来发送电子邮件from.email,并且禁止的属性被忽略。
在发送事务性电子邮件时,我发现将 Reply-To 标头设置为正常而非异常,但我发现在发送存储的模板时无法执行此操作很奇怪。从代码而不是从 SparkPost 模板编辑器设置发件人姓名和电子邮件似乎也是一个很好的功能。
我的代码如下所示(它使用 SparkPost NodeJS API,并且使用此代码成功发送了带有替换数据的电子邮件,因此问题不在substitution_data,recipients或此代码的回调部分中):
client.transmissions.send({
transmissionBody: {
content: {
template_id: 'my-first-email',
reply_to: 'example@sparkpostbox.com', // example email address
from: {
name: 'My Name',
email: 'example2@sparkpostbox.com'
}
},
substitution_data: { /* ... */ },
recipients: [ /* ... */ ]
}
}, function (err, res) { /* ... */ });
Run Code Online (Sandbox Code Playgroud)
更新:我在 SparkPost 支持中心发现了这个问题,但它对我没有帮助。
更新 2:我还发现这个支持问题可能会有所帮助,但我仍然需要一种设置Reply-To …
我们正致力于将我们的电子邮件应用程序与SparkPost集成.我们唯一的问题是从SparkPost获取退回电子邮件,以便将其从未来的邮件中排除.我们的应用程序直接从邮件服务器检索退回电子邮件.当用户在我们的软件中使用SparkPost SMTP设置时,他无法检索和处理退回电子邮件,因为SparkPost不会将退回邮件转发到用户的退回电子邮件地址.
Webhooks对我们不起作用,因为它们只是实时提取数据.如果我们的软件在弹出电子邮件发出时关闭,弹跳将不会被捕获并且将因我们的软件而丢失,因为以后无法检索它.
所以,请告诉我是否有办法通过API或通过电子邮件从SparkPost获取退回电子邮件,就像Amazon SES一样.Amazon SES只是将退回的电子邮件转发到用户在我们的应用程序中指定的电子邮件地址(邮件标题中的返回电子邮件标题字段).
这是我第一次在rails项目中设置邮件.有人告诉我使用SparkPost并为多个动作创建不同语言的模板.
为简单起见,我们说一个user_signed_up(用户)邮件.
目前我有这个设置工作:
Gem安装:'sparkpost'
mail.rb
ActionMailer::Base.smtp_settings = {
address: "smtp.sparkpostmail.com",
port: 587,
enable_starttls_auto: true,
user_name: "SMTP_Injection",
password: SPARKPOST_API_KEY,
domain: 'foo-bar.com'
}
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.default charset: "utf-8"
Run Code Online (Sandbox Code Playgroud)
application_mailer.rb
require 'sparkpost'
class ApplicationMailer < ActionMailer::Base
default from: "Seal Notification <noreply@foobar.com>"
layout 'mailer'
end
Run Code Online (Sandbox Code Playgroud)
signup_mailer.rb
class SignupMailer < ApplicationMailer
def user_signed_up(user)
receiver = user.email
sender = 'myself@test.com'
title = 'Thanks for registering'
body = 'This is a test body'
sparky = SparkPost::Client.new(SPARKPOST_API_KEY)
sparky.transmission.send_message(receiver,sender,title,body)
end
end
Run Code Online (Sandbox Code Playgroud)
我可以成功发送电子邮件.
虽然,由于多语言和身体不能风格,这绝对不可扩展.
现在我需要设置模板以允许非技术人员调整电子邮件模板.
但这里是我被困的地方,对以下问题的回答将极大地帮助我:
1)如何发送特定的电子邮件模板?
2)如何将变量传递给这些模板?
3)我如何处理多语言支持? …
我使用SparkPost从我的node.js应用程序发送电子邮件.
我试图像这样禁用"click_tracking"(参见下面的代码示例),但它仍然无效.有没有人有想法配置SparkPost"按原样"发送电子邮件?
var sparky = new SparkPost(process.env.SPARKPOST_API_KEY, {"open_tracking": false, "click_tracking": false});
sparky.transmissions.send({transmissionBody: transmissionBody}, function (err, res) {
if (err) {
console.log('Whoops! Something went wrong in sendEmail');
console.log(err);
} else {
console.log('sendEmail sent!');
}
});
Run Code Online (Sandbox Code Playgroud) 我使用本指南作为为Rails应用设置ActionMailer的参考,但是每当尝试发送邮件时都会收到此错误。我也尝试使用与指南相同的精确设置进行复制,但是仍然出现相同的错误。
550 5.7.1 Unconfigured Sending Domain <gmail.com>
Run Code Online (Sandbox Code Playgroud)
我已经正确配置了我的发送域,例如Sparkpost上的myapp.com,该域已标记为准备发送,这是Rails应用程序的生产和开发设置下的rails actionmailer设置。
config.action_mailer.smtp_settings = {
user_name: 'SMTP_Injection',
password: 'my_api_key',
address: 'smtp.sparkpostmail.com',
port: 587,
enable_starttls_auto: true,
domain: 'myapp.com'
}
Run Code Online (Sandbox Code Playgroud) 我想通过带有curl post的Sparkpost API发送附带pdf文件的电子邮件.
要插入我使用的pdf(我的test.pdf是~200KB)
"data":"'$(cat test.pdf} | base64 --wrap=0)'"
Run Code Online (Sandbox Code Playgroud)
但不知何故,这不会显示以下错误:
/usr/bin/curl: Die Argumentliste ist zu lang (original)
/usr/bin/curl: Argument list is too long
Run Code Online (Sandbox Code Playgroud)
编辑:curl命令
curl -X POST https://api.eu.sparkpost.com/api/v1/transmissions -H 'Authorization: <APIKEY>' -H 'Content-Type: application/json' -d '{
"options":{
"open_tracking":false,
"click_tracking":false,
"inline_css":false
},
"recipients":[
{
"address":{
"email":"user@domain.tld",
"name":"user"
}
}
],
"content":{
"from":{
"name":"sender",
"email":"sender@domain.tld"
},
"reply_to":"replyto@domain.tld",
"subject":"subject",
"text":"textbody",
"attachments":[
{
"name":"attachmentname.pdf",
"type":"application/pdf",
"data":"'$(cat test.pdf | base64 --wrap=0)'"
}
]
}
}'
Run Code Online (Sandbox Code Playgroud) 我想用node.js应用程序编写html电子邮件.电子邮件已成功发送.当我记录文本时,它会向我显示这样的内容
<html><body><h1>Hi John!</h1><p>Jack just shared graph with you</p><p><a href='https://some.url.here/blablabla'>View here</a></p></body></html>
Run Code Online (Sandbox Code Playgroud)
当我用谷歌收件箱打开这封电子邮件时,它很好地显示了html,但是标签没有href属性,所以我不能从电子邮件中获取给定的URL.我正在使用sparkpost用于电子邮件.
谁能告诉我为什么会这样?
我正在 cakephp 2.2.3 中开发一个 Web 应用程序。我使用的那个应用程序是 CakeEmail。但现在我想实现 SparkPost 插件来发送电子邮件。
我在谷歌上花了很多时间,但没有得到任何满意的结果。所有代码都是我找到的 cakephp 3.0 或更高版本。
下面我发布了一些 cakephp 3.x 的链接 -
https://github.com/syntaxera/cakephp-sparkpost-plugin
https://github.com/narendravaghela/cakephp-sparkpost
请帮助我并给我关于在 cakephp 2.x 中实现 Sparkpost 的任何想法。
我成功使用Mandrill从我的CodeIgniter站点发送邮件,使用此配置:
$config['mailtype'] = "html";
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.mandrillapp.com';
$config['smtp_user'] = 'user';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '587';
$this->email->initialize($config);
Run Code Online (Sandbox Code Playgroud)
但是Mandrill不想做事务电子邮件,所以我需要迁移到SparkPost.
以下是他们的指令:https://support.sparkpost.com/customer/en/portal/articles/1988470-smtp-connection-problems
我试过这个配置:
$config['mailtype'] = "html";
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.sparkpostmail.com';
$config['smtp_user'] = 'user';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '587';
$this->email->initialize($config);
Run Code Online (Sandbox Code Playgroud)
但没有邮件发送,没有错误.所以我试着在主机中添加"tls":
$config['smtp_host'] = 'tls://smtp.sparkpostmail.com';
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
消息:fsockopen():SSL操作失败,代码为1. OpenSSL错误消息:
错误:1408F10B:SSL例程:SSL3_GET_RECORD:错误的版本号
文件名:libraries/Email.php
行号:1950
我在端口2525上遇到了同样的错误.
这是我在本地MAMP服务器上的phpinfo中的openssl部分:
支持OpenSSL支持
OpenSSL库版本OpenSSL 0.9.8zg
2015 年7月14 日OpenSSL头版本OpenSSL 0.9.8r 2011年2月8日
但是我的Debian服务器上有同样的错误,使用phpinfo:
OpenSSL支持启用
OpenSSL库版本OpenSSL 1.0.1e 2013年2月11日
OpenSSL头版本OpenSSL 1.0.1e 2013年2月11日
Openssl默认配置/usr/lib/ssl/openssl.cnf
任何线索?
非常感谢.
从 Mandrill 切换到 SparkPost 后,我们在使用 发送电子邮件时遇到了问题transmission。在 Mandrill 中merge_vars,没有 HTML 编码,我们有时会在其中放入 HTML,但是在 SparkPost 中,substitution_data似乎是 HTML 编码,这会弄乱我们的一些电子邮件。是否有一个全局设置允许关闭此功能或至少禁用它transmission?
编辑: 我忘了提及我们使用csharp-sparkpost库,这意味着这可能是与该库直接相关的问题,而不是 SparkPost API,我需要进一步调查它。
Edit2:我测试了直接使用JSON发送电子邮件,结果是相同的,所以我可以得出结论,HTML编码是由SparkPost完成的,而不是由c#库完成的。
当我grunt test在源代码Github/Codeship中运行时,我发现以下错误.
在代码内部的setup命令中,以下代码配置如下.
nvm install 0.12.6
nvm use 0.12.6
npm install grunt-cli bower -g
npm install
bower install -p
npm run update-webdriver
Run Code Online (Sandbox Code Playgroud)
代码内的测试命令;
grunt test
Run Code Online (Sandbox Code Playgroud)
但是在我的源代码中找不到该错误,并且通过查看codeship给出的以下错误消息实际上在github/codeship中找到了该错误.因为我们在服务器中配置的文件夹结构没有定义.请帮我解决一下.谢谢.
Using 2 x hasMany to represent N:M relations has been deprecated. Please use belongsToMany instead
>> Mocha exploded!
>> /home/rof/src/github.com/MyProjects/node_modules/sparkpost/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js:5
>> const Hoek = require('hoek');
>> ^^^^^
>> SyntaxError: Use of const in strict mode.
>> at exports.runInThisContext (vm.js:73:16)
>> at Module._compile (module.js:443:25)
>> at Object.Module._extensions..js (module.js:478:10)
>> at Module.load (module.js:355:32)
>> …Run Code Online (Sandbox Code Playgroud) sparkpost ×12
node.js ×4
email ×3
actionmailer ×2
php ×2
bash ×1
bouncedemail ×1
cakephp ×1
cakephp-2.x ×1
codeigniter ×1
codeship ×1
composer-php ×1
curl ×1
github ×1
html-email ×1
javascript ×1
ruby ×1
smtp ×1
ssl ×1