rykov / paperboy Goto Github PK
View Code? Open in Web Editor NEW๐๐จ Email Campaign Delivery built with GoLang inspired by GoHugo
Home Page: https://www.paperboy.email/
๐๐จ Email Campaign Delivery built with GoLang inspired by GoHugo
Home Page: https://www.paperboy.email/
The preview app hangs on a blank page for a long time:
Hi,
amazing project. Really looking forward to what paperboy will be capable of in the future.
My feature request would be to send follow-up messages, also known as drip campaigns.
Is this something that will make it as a feature in paperboy some day?
-Sasa
After a fresh compile of paperboy, I cd'ed into an empty directory and called
paperboy init
and got a SIGSEV immediately:
~/D/P/test> paperboy init
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x147ec2b]
goroutine 1 [running]:
github.com/rykov/paperboy/mail.(*fs).Stat(0x0, 0xc4202bc640, 0x36, 0x114732f, 0xc42019dca0, 0x2, 0x2)
<autogenerated>:1 +0x2b
github.com/rykov/paperboy/vendor/github.com/spf13/afero.Exists(0x18cb540, 0x0, 0xc4202bc640, 0x36, 0x36, 0x0, 0xc4202d9680)
/Users/christoph/go/src/github.com/rykov/paperboy/vendor/github.com/spf13/afero/util.go:313 +0x49
github.com/rykov/paperboy/cmd.glob..func3(0xc4200cb440, 0x1928908, 0x0, 0x0, 0x0, 0x0)
/Users/christoph/go/src/github.com/rykov/paperboy/cmd/new.go:125 +0x113
github.com/rykov/paperboy/vendor/github.com/spf13/cobra.(*Command).execute(0xc4200cb440, 0x1928908, 0x0, 0x0, 0xc4200cb440, 0x1928908)
/Users/christoph/go/src/github.com/rykov/paperboy/vendor/github.com/spf13/cobra/command.go:649 +0x456
github.com/rykov/paperboy/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x19000e0, 0xc42019df40, 0x1900228, 0xc42019df08)
/Users/christoph/go/src/github.com/rykov/paperboy/vendor/github.com/spf13/cobra/command.go:728 +0x2fe
github.com/rykov/paperboy/vendor/github.com/spf13/cobra.(*Command).Execute(0x19000e0, 0xc42019df08, 0x1)
/Users/christoph/go/src/github.com/rykov/paperboy/vendor/github.com/spf13/cobra/command.go:687 +0x2b
github.com/rykov/paperboy/cmd.Execute(0x1654640, 0x1b, 0x15dcb9e, 0x3)
/Users/christoph/go/src/github.com/rykov/paperboy/cmd/root.go:33 +0x1bd
main.main()
/Users/christoph/go/src/github.com/rykov/paperboy/main.go:28 +0x51
2 ~/D/P/test>
I had a prior version of paperboy around for quite a while but I cannot remember if I ever found the time to test it. So I cannot confirm whether paperboy ever worked on my machine.
When using 0.3.0-alpha.1/Paperboy_0.3.0-alpha.1_Linux_64bit binary pre-compiled i get the following 'panic error' :
jordi@sirio:~/Html/paperboy5$ paperboy send life-coaching pilot
Loading template content/life-coaching.md
Loading recipients lists/pilot.yaml
Sending an email every 1s via 3 workers
[0] Starting worker...
Retrying SMTP dial on error: EOF
Retrying SMTP dial on error: EOF
Retrying SMTP dial on error: EOF
[0] Stopping worker...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xad84e1]
goroutine 33 [running]:
github.com/rykov/paperboy/mail.(*deliverer).startWorker.func1()
/home/runner/work/paperboy/paperboy/mail/sender.go:136 +0x121
created by github.com/rykov/paperboy/mail.(*deliverer).startWorker
/home/runner/work/paperboy/paperboy/mail/sender.go:133 +0x146
Hope it helps !
f3n1x@urano:~/paperboy$ tree
.
โโโ content/
โย ย โโโ campaign0.md
โย ย โโโ life-coaching.md
โโโ layouts/
โย ย โโโ _default.css
โย ย โโโ _default.html
โย ย โโโ _default.text
โโโ lists/
โย ย โโโ pilot.yaml
โโโ themes/
โโโ config.toml
โโโ README.org
4 directories, 8 files
f3n1x@urano:~/paperboy$ paperboy send piloto life-coaching
Leads to :
Loading template
Error: open : no such file or directory
What am i missing ?
Thanks, thanks, thanks
Some newsletters have a "Read this e-mail on the Web" link, and some newsletters like to publish issue archive online. Let's design this behavior for Paperboy ...
Can we do drip campaign using paperboy?
Hey @rykov
Really nice system.
I noticed that in the docs you looking for help with the generation of the css.
I think you can use https://github.com/matcornic/hermes to generate the css for the emails.
I used to ages ago, and it worked then. I have not used it for a while and i noticed that there is newer code here: https://github.com/erajayatech/hermes
I might be able to spare some time to help ... I am on Telegram : https://github.com/gedw99
By default paperboy uses port 25.
Some mail provider uses port 465 / 2525 for their smtp servers.
For example:
[smtp]
url = "smtp://smtp.mailtrap.io"
port = 2525
It should be possible to add user-specific attachments on the mail.
Today I wanted to test paperboy but I cannot even get past paperboy init
.
This is the first of two issues I encountered:
Problem:
make install
errors out with the message: undefined: blackfriday.Run
.
Repro steps:
Follow the installation steps: git clone, cd, make install:
~/g/s/g/rykov> git clone https://github.com/rykov/paperboy 16:28:05
Cloning into 'paperboy'...
remote: Counting objects: 333, done.
remote: Total 333 (delta 0), reused 0 (delta 0), pack-reused 333
Receiving objects: 100% (333/333), 84.68 KiB | 285.00 KiB/s, done.
Resolving deltas: 100% (192/192), done.
~/g/s/g/rykov> cd paperboy/ 16:28:20
~/g/s/g/r/paperboy (master โ)> ls 16:28:24
Makefile Melody.lock Melody.toml README.md cmd mail main.go parser server
~/g/s/g/r/paperboy (master โ)> make install 16:28:25
go install -ldflags "-X 'main.version="0.0.0" (2018-01-29 15:28:29)'" -v .
github.com/rykov/paperboy/parser
github.com/rykov/paperboy/mail
# github.com/rykov/paperboy/mail
mail/campaign.go:230:12: undefined: blackfriday.Run
make: *** [install] Error 2
Workaround:
call
melody u
and now make install
runs without errors.
I am getting the following error while trying to send the email.
Error: dial tcp :465: getsockopt: connection refused
how to set a custom port?
I already tried like following
[smtp]
url = "smtp.socketlabs.com"
port = "25"
and
[smtp]
url = "smtp.socketlabs.com:25"
i am using MacOS.
This will work by exposing a "localhost" API endpoint from the CLI, and use a hosted single page Javascript app to call the API (with Cross-Origin Resource Sharing) to render the results:
Things to consider:
We are calling a "localhost" API that cannot use HTTPS due to lack of a valid certificate. Thus browser security policy will not allow our Javascript preview app to call an HTTP API, unless the app is loaded via HTTP as well. (Secure pages cannot load unsecured resources). This may be ok, or we may need to proxy the whole page through the CLI to secure the remote connection:
Browser <--[http]--> CLI <--[https]--> Hosted JS app
This can be done via Goreleaser, apparently
Sender validation is one of significant signals to spam filters. There are a number of standards (DKIM, SPF, DMARK, etc) that are all tedious to set up. This task is to add a validation command that will do a sanity check on the From address.
For this task, we'll take the domain of the From address and check it against the hostname in in the SMTP settings. The command will also allow specifying a sender hostname via CLI flags.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.