Project: Sparkpost for Speak To Me Catalog

to do  
#BulkEmail #smtp #newsletters #SparkPost 


  1. BulkEmail
  2. smtp
  3. newsletters
  4. SparkPost
  5. dkim
  6. DomainNames
  7. inmotion
  8. nameservers
  9. shucks
  10. thanks
  11. TimeingIsKing
  12. BlackList
  13. hooponopono
  14. shuck
  15. thinking
  16. inprocess
  17. MailingProcedure
  18. huh
  19. BTW
  20. FYI
  21. GCP
  22. TD
  23. HTTPlug


Seth says
(step 2)  Verifying that *I* own the domain and are responsible for email sent from that domain.   This can be done thought email to or via DKIM. 

Excellant instructions of how to change this DNS record at →

  #done → seth … wait for it wait for it
#dkim #DomainNames

Well it appears that my domain is blocked (blacklisted) … also getting error “Failed to generate message (1901)” when sending a test mail to postmaster.

Si says
Are you sure it is blacklisted? I just did a blacklist check on several tools and don’t see blacklisted. The only issue that is coming up is that it does not have any domain MX records set … which of course would explain the mail send failure.

Seth says
yeah network solution made me go though a procedure to “move” their DNS system to a new thingey.  I did that so that i could set a TXT record in the MX records as per SparkPost’s instructions.   That did work.  but now is responding as if to a “construction page” which still over on networksolutions.  

so yeah, they probably trashed my DNS servers when i clicked for their dumb move. 

Seth says
yep that is what happened.   anybody have the inmotion name servers laying around ?

Seth says
The name servers for my “reseller” package are …  - IP Address: -  IP Address:

tag #inmotion #nameservers

Seth says
seems that, according to network solutions help, the problem was created when i changed the DKIM record at network solutions, whereas it was supposed to be changed at inmotion … notwistanding that their own doc here says to do it the way i did it …    who knew null

anyway the name servers propogated and now all i need to do is change the DKIM record at inmotion.

Seth says
okay i think i updated the DKIM record at inmotion

but SparkPost still has me as …

#shucks … tackle this tomorrow

Si says
Well, inmotion domain propagation is notoriously slow. When I did the validation for the move to GCP it took until the next day to become visible to google. They say it can take up to 48 hrs.

Also, wtf is the spch0217… to the left? That sure looks suspicious to me.

Seth says
It as instructed by SparkHost →

Si says
Okay. I can see how that could work … just an odd way to do it.

Seth says
nathan, what tool did you use to see the DNS records? and blacklisting?

Si says
Just google email blacklist check and use any. I tried several with about the same results.

Seth says

#thanks → nathan

unfortunately that sensing of the world confirms my original suspicions


Seth says
if i remember correctly this blacklisting was why i started using to send out the newsletters.  that happened several years ago.

Si says
Well, I used the very same Mx toolbox with exactly (and even copied and pasted it to be sure) yesterday and it was not blacklisted at all, there, or anywhere else.

Clearly your experience is being generated differently than mine :)

Seth says
well you may well have tried it when the MX record had been screwed up and you ended up retrieving that “under construction” dummy website … which would not have been blacklisted.

… er, relative  #TimeingIsKing indeed !

Anyway i predict that your experience today will show is on a #BlackList.

Si says
Well see, that’s the thing. Humans are in this habit cycle where they think they need to sync up their experiences in order to co-exist. But in fact they don’t. Every person already exists inside their own entire and self contained experience. Syncing up on some nice juicy things is really good … but syncing up on bad things is rarely of any value at all. 

Like when a girl is cleaning her closet and picks up and smells a shirt and goes “oh, that really stinks bad!”, then hands it to her girlfriend, who smells it and says “oh yea, that is really bad!”. People do this all the time about everything. It is simply not necessary at all, except in a few small details here and there that support the desired joint story (more of course when doing something like making love).

I had my nice experience. I have no desire to have your experience of seeing your domain black listed. I don’t need to. Even if I were were working directly with you, I would not need to. All that needs to happen is for you to replace your thinking with thinking about the experience you want and then we will both be having that experience … far easier than both of us having to sync up with the bad experience and then, in each our own way, create the desired experience in our respective realities. That is why fixing things traditionally takes a lot of work … it doesn’t have to.  

Seth says
well i am intending to send out the Speak To Me  #newsletters.
These thoughts are necessary for that purpose … especially those in #BlackList.  

#thanks → nathan for your contribution leading to more facts about the process.

Now my energies are best spent acting in compliance with those facts, rather than wishing them away.

Si says
Yep, that’s true. Wishing things away never does or did anything.  

However, doing a grid, or even #hooponopono, would do wonders and speed your process up to maybe only a few minutes compared to maybe hours by dragging your energy vibration and thoughts along until your facts and energy align with what you desire by “doing things first”.

Energy alignment first, then what is left to do is trivial, often quite fun, and sometimes even nothing at all.  

But no wishing. You are right about that. It is wasted effort if it does not actually change your state of being.

Seth says
#shuck a #hooponopono sure sounds like more just #thinking … me, i am ready to act now … er, sans this distraction which has just to do with our human bonding … or rather not bonding. 

Seth says



Setting up a Request Adapter

Because of dependency collision, we have opted to use a request adapter rather than requiring a request library. This means that your application will need to pass in a request adapter to the constructor of the SparkPost Library. We use the HTTPlug in SparkPost. Please visit their repo for a list of supported clients and adapters. If you don’t currently use a request library, you will need to require one and create a client from it and pass it along. The example below uses the GuzzleHttp Client Library.

A Client can be setup like so:

require ’vendor/autoload.php’;

use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Http\Adapter\Guzzle6\Client as GuzzleAdapter;

$httpClient = new GuzzleAdapter(new Client());
$sparky = new SparkPost($httpClient, [’key’=>’YOUR_API_KEY’]);

Seth says
okay … in the mac terminal 
this is where i need to be able to git and install the release of the software on speaktomecatalog …
Last login: Thu Feb 16 22:35:53 on console
Seths-Mac-mini:~ sethrussell$ ssh -p 2222
Last login: Wed Feb 15 10:38:22 2017 from
[speakt5@res216 ~]$ cd public_html/db
[speakt5@res216 db]$ git clone
Cloning into ’test’...
Warning: Permanently added the RSA host key for IP address ’’ to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[speakt5@res216 db]$

nathan, i am stuck here … if there is a password for this repository, why does it not ask for it?

My test repository is in fact here: … if you go there it will require our user name and password for our respsitory.  hmmm … is there is a way to embed that in the git ?

Si says
This is some weirdness in how you have been setting up your apple public keys on your apple keychain. I have seen it a few times before, but not having it right now.

You can simply use the http url instead. Where you get the url from at bitbucket it gives you the option to use a http url instead of a git url. You can also encode the password right in the http url normally if you use it a lot.

 git clone https://…...


Si says
Here is the http test url:

git clone


Seth says
yeah that worked, #thanks 

problem that installed the test.git on my local mac … i need to intstall it on the speak server.

Seth says
hmmm … oh maybe i need to issue the command that will navigate me to speak … then do the https get … ill try that ….

er, #shucks … how do i do that?

Seth says
omg i think i did it … now just got to wrap myself around what it actually did null

Seth says
so this works …  …. hmmm … okay … now got to learn how these repositories work

Si says

Si says
Yep. That’s it. You are simply opening a terminal on the speak server, moving to the correct folder, and unpacking the software there. That’s the normal sequence for a git install.

Si says
… and #BTW just #FYI … once you ssh’d to your remote server you probably could have used either the git:// or the https:// repository url equally because remote servers do not have automatic keychains. I had no idea you were not wanting the software on your local machine.

The git:// url’s try and use the mac keychain locally, so you don’t have to keep entering the password, but you already have a speaktome keychain key being used by your ssh connection login, and so that one is getting confused and used for the git:// commands on your local mac as well, so it doesn’t work.

You could set up separate keys locally for each, but I don’t have that on the top of my head, would have to google it, and it is painful to do … I just use the https:// repository url’s when I run into such things.

Seth says

Seth says

Seth says
thanks … i am figureing all of this out … i need to be able to move in this world easily and learning this is part of that.

Si says

Seth says
remembering command line terms and terse syntaxes is not my forte … bit i am quite confident at knowing what needs to be done and clicking to do it.    have you any experiences with GUIs for git … like maybe this one ?  Can something like that be installed in our #GCP ?  … or woud it help at speaktomecatalog? … or is it something that works anywhere and needs to be installed on my mac?

Si says
No. GUI’s cannot be installed on servers. Servers are simply command line only. Even though there are a few web based gui’s out there for git and a few things, I have tried them and they very hard to install and get to work reliably and are not how all the documentation is skewed. All the doc for all this stuff is based on command line use.

But you don’t have to remember these commands. I don’t, and couldn’t either. I just google them when I need them. They are so easy to google. And if I used the same multiple command a lot, I just create a batch file for it. I even forget how to create batch files in linux often, so I google that too when I need it.

Really, all this server shell stuff is so easy to google and is so well documented out there, especially at stackoverflow which is the google result I choose first. That is how I do everything all the time all day. Google and do. No memory required.  

The only trick is knowing how to compose a google search to get you right to what you are looking for, but that’s just a little learning process, then google and do is often even easier than gui based tools.

Seth says
yeah okay that’s what i have been doing for a long time now.  am trying to move in a world here which has apparently yet to be designed for my legs to run in … so guess i will just keep crawling through the brambels.  #shucks 

Si says
Well, IMHO it is not your legs, it is simply that you have a resistance to the command line you have been carrying since a long time ago when things like “google and do” were not available and people had to be nerds and have great memory to effectively use the command line.

Now, everyone uses the command line and hardly anyone has much idea how it works at all … because google and do works great. I have seen you, at times, struggle with GUI ways to do things that literally took you 10 or more times longer to get the job done using point and click than you could have done with a simple google copy paste do, without having any idea what the commands were.

It is your long standing story that your legs are not made for the command line … not reality. You could update your story, use #hooponopono to clean your resistance, and be a command line master in moments.  

Si says
… reality works much different today. It is much faster and more mutable than it was 40 years ago. And there are great tools for managing it available today. Reality can be a much easier and faster and more tuned in experience today, even for an old goat.  

Seth says
well i know when i am crawling when i need to be running.  obviously i need to learn some stuff.  thanks for your help.

Si says
Just remember, all the best learning AND change happens in state of being, not circumstances, not knowledge. Put the effort into changing your state of being first, and the rest will fall into place cleanly and effortlessly.   

Trust it, it works!

Seth says
i got my test respository cloned now in 3 different places … at bitbucket, locally, at speak.  i put a hello.php file in the bitbucket repository, but it did not get into the other ones.  maybe i needed to committ it in the bitbucket repository … i am guessing.

Si says
Yes. Add AND Commit are always required to get new files in.

I am not sure what you mean by “put in the bitbucket repository” though. It is possible to upload files through the bitbucket GUI, but that is probably the worst way to do things.

Best way is to add the file locally. Use git add then git commit to get it into the repo, then git push it to bitbucket. That is the normal work flow and works super cleanly and prevents collisions and info loss.

Seth says
yeah i need to learn the basic transactions between repositories

it seems i have a local gui running … that may help null

Si says
The normal work flow I do when making changes to the #TD source is.
  1. Modify a file locally (usually using netbeans)
  2. Command line git add . (only if it is a new file)
  3. Command line git commit -am ‘what I did’
  4. Command line git push
  5. Then on the server do git pull
  6. The change is integrated into the sever code with only the parts of the files that actually changed being transferred (thus very efficient).
On both the local and the server attention (cd) must be upon the root of the repo.

Seth says

Seth says
what is “master” … in the case of TD’s ? …. in the case of my app that i want to install at ?

Si says
Eh, who knows. Quite frankly I don’t really know or care. I just do what “google and do” tells me to. Generally master is only needed when doing offbeat things, not normal workflow like above if your repo is set up normally via a get clone.

In the above work flow, I have 2 teminal “tabs” open, one local, one remote, and since the commands I just typed are in the history buffers, once done the first time, I just use the arrow keys to reexecute the above commands as needed. It is super quick and easy … faster even that would be in a gui.

Seth says
yeah i did it that way when i was using a local mirror and ftp to transmit.  that was simple and worked fine … but i guess just for one developer at a time.   now we are getting into multiple developers and snaying packages together from whever on the web and knitting them together so they work at some site.  apparently that is the new normal. 

Si says

Seth says
require ’vendor/autoload.php’;
use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Http\Adapter\Guzzle6\Client as GuzzleAdapter;

installing these resources in the right place at so that i can call the SparkPost api is the question at hand.


Seth says
Seth:  qick question … some of the components of SparkPost look like they require php >=5.4 … yet the current version at speak is 5.2.17
Seth:  do you know for a fact that there would be a big problem in just updating the weisite?
Miami:  Yep. That’s a pretty big problem. There are huge differences between those. If you upgrade speak to 5.4 lots of things will probably break because you relied on quite a few of the discontinued things in your programming style of the early 00’s
Seth:  ok thanks
Miami:  I nearly have TD software up to 5.6 now, just a few more things to fix, but that was quite a job.
Seth:  i see
Seth:  i guess that was bad news … but maybe the good news is i need to install the mailer in the cloud instead of a
Seth:  how about that?
Miami:  Sure. GCP is 5.6 by default.
Miami:  Better to install as an app than as a compute engine. Then it won’t accrue any cost when not in use.
Seth:  okay

Seth says
see “A mailer in the Cloud

Seth says
Some SparkPost documentation to note …

See Also

  1. Thought Newsletter Mailing System with 1961 viewings related by tag "newsletters".
  2. Thought #EmailListVerify with 1160 viewings related by tag "BulkEmail".
  3. Thought Cycle of doing with 777 viewings related by tag "thinking".
  4. Thought Moving from 2 to 3 dimensions with 522 viewings related by tag "Thinking".
  5. Thought Copy of - New Email List Manager System with 394 viewings related by tag "BulkEmail".
  6. Thought (clone) Should presidents tweet? with 333 viewings related by tag "thinking".
  7. Thought Socrates Cafe Question: Should presidents tweet? with 312 viewings related by tag "thinking".
  8. Thought Diagram of Speak.txt system with 309 viewings related by tag "newsletters".
  9. Thought Well here i am back in this reality with 307 viewings related by tag "thanks".
  10. Thought Switching Hosting Plans at InMotion with 294 viewings related by tag "inmotion".
  11. Thought [title (23251)] with 261 viewings related by tag "thanks".
  12. Thought Requirements for emailing with 247 viewings related by tag "DKIM".
  13. Thought The Medium is the Message with 220 viewings related by tag "btw".
  14. Thought RFD: The base domain from which we proliferate with 201 viewings related by tag "DomainNames".
  15. Thought (1) Sparkpost transaction to Update a template of the newsletter composed by the Reporter with 196 viewings related by tag "SparkPost".
  16. Thought (4) After mailing is finished - Sparkpost transaction to retrieve the bounces with 181 viewings related by tag "newsletters".
  17. Thought Accepting responsibility for every thing in your life causes joy and power. with 174 viewings related by tag "btw".
  18. Thought #SparkPost with 165 viewings related by tag "SparkPost".
  19. Thought about: The #RWG - comment 67967 with 159 viewings related by tag "shucks".
  20. Thought A finely tuned set of beliefs sensing a roll of tape with 158 viewings related by tag "TimeingIsKing".
  21. Thought The ego bubble plane with 151 viewings related by tag "thinking".
  22. Thought Belief Types with 138 viewings related by tag "shucks".
  23. Thought How does blockchain go beyond what we already have in GCP ? with 137 viewings related by tag "GCP".
  24. Thought [title (21932)] with 137 viewings related by tag "btw".
  25. Thought about: Megaphone vs Free Speech vs Political Correctness - comment 72579 - comment 72589 with 134 viewings related by tag "hooponopono".
  26. Thought API Procedure to mail a Newsletter with 129 viewings related by tag "SparkPost".
  27. Thought Watching our indexing at Google with 121 viewings related by tag "btw".
  28. Thought I am a variable with 112 viewings related by tag "inprocess".
  29. Thought Triangulating ... with 111 viewings related by tag "thinking".
  30. Thought Why my trains of thought break ... with 108 viewings related by tag "btw".
  31. Thought new days with 108 viewings related by tag "btw".
  32. Thought Fallacies and Pallacies with 105 viewings related by tag "thinking".
  33. Thought Unsubscribe to Speak To Me Catalog newsletter with 102 viewings related by tag "newsletters".
  34. Thought about: rational and intuitive thinking – marc clifton with 95 viewings related by tag "thinking".
  35. Thought about: softaculous with 93 viewings related by tag "GCP".
  36. Thought testing with 86 viewings related by tag "btw".
  37. Thought #iSwim with 86 viewings related by tag "thinking".
  38. Thought 3 state logic with 86 viewings related by tag "thanks".
  39. Thought Shout Out: Stay Hydrated but keep it in your pocket with 84 viewings related by tag "newsletters".
  40. Thought It Speaks For Its Self with 77 viewings related by tag "shucks".
  41. Thought REPORTER with 77 viewings related by tag "newsletters".
  42. Thought [title (23120)] with 76 viewings related by tag "hooponopono".
  43. Thought (3a & 3b) SparkPost transaction that acctually dispatches a mailing with 76 viewings related by tag "shucks".
  44. Thought SeriTD dreams, and dreams of boz. with 74 viewings related by tag "thinking".
  45. Thought Eggs Florentine with 61 viewings related by tag "shucks".
  46. Thought Thinking in the Public River with 58 viewings related by tag "thinking".
  47. Thought Deeds collapse Possibilities into Manifestations with 55 viewings related by tag "thinking".
  48. Thought BlackListt ... get speaktomecatalog off the list with 54 viewings related by tag "BlackList".
  49. Thought Learning how to use the Google Cloud Platform with 54 viewings related by tag "GCP".
  50. Thought 1705a with 52 viewings related by tag "newsletters".