小编ste*_*eve的帖子

Heroku-在app.json中配置调度程序

有没有一种方法可以将Heroku Scheduler配置为

  • 要运行的脚本
  • 频率

使用app.json插件配置,以便通过Github中的“部署到Heroku”按钮自动进行设置?我可以使用显示插件

  "addons": [ "scheduler" ]
Run Code Online (Sandbox Code Playgroud)

但尚不清楚如何配置脚本名称和频率。

configuration json scheduler heroku

7
推荐指数
1
解决办法
193
查看次数

NGINX 将 SMTP 身份验证凭据转发到下一个服务器?

使用此处描述的 NGINX SMTP 中继功能来代理商业 SMTP 服务器,有效地“白标”中继地址(包括证书),同时保留身份验证。

配置 NGINX 如下:

mail {
    server_name smtp.proxy.mydomain.net;
    auth_http   127.0.0.1:9000/auth;
    proxy_pass_error_message on;
    xclient off;
    smtp_capabilities "8BITMIME" "STARTTLS" "PIPELINING" "ENHANCEDSTATUSCODES";
    starttls on;
    ssl_certificate     /etc/letsencrypt/live/smtp.proxy.mydomain.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/smtp.proxy.mydomain.net/privkey.pem;
    ssl_protocols       TLSv1.2;
    ssl_session_cache   shared:SSL:10m;

    server {
        listen    587;
        protocol  smtp;
        smtp_auth login plain;
    }
}
Run Code Online (Sandbox Code Playgroud)

当客户端请求 STARTTLS 时,NGINX 使用该证书,并且客户端(在我的例子中swaks)将 AUTH LOGIN 凭据发送到 NGINX。

NGINX 然后调用mail_auth_http_module OK。我有一个简单的 Python Flask 应用程序,它返回指示始终接受身份验证的标头以及服务器地址。您可以在此处查看身份验证服务器对curl请求的响应:

$ curl -v localhost:9000/auth
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) …
Run Code Online (Sandbox Code Playgroud)

nginx nginx-reverse-proxy

5
推荐指数
1
解决办法
7115
查看次数

根据 RFC2045 限制行长度的 base64 编码

RFC2045 第 6.8 节规定 base64 输出的最大编码行长度应为 76 个字符或更少。

Golang 流编写base64.NewEncoder器没有任何用于行拆分的选项,如下所示。

package main

import (
    "encoding/base64"
    "io"
    "os"
    "strings"
)


// See https://www.ietf.org/rfc/rfc2045.txt, section 6.8 for notes on maximum line length of 76 characters
func main() {
    data := "It is only the hairs on a gooseberry that prevent it from being a grape! This is long enough to need a line split"
    rdr := strings.NewReader(data)
    wrt := base64.NewEncoder(base64.StdEncoding, os.Stdout)
    io.Copy(wrt, rdr)
}
Run Code Online (Sandbox Code Playgroud)

输出是

SXQgaXMgb25seSB0aGUgaGFpcnMgb24gYSBnb29zZWJlcnJ5IHRoYXQgcHJldmVudCBpdCBmcm9tIGJlaW5nIGEgZ3JhcGUhIEl0IGlzIG9ubHkgdGhlIGhhaXJzIG9uIGEgZ29vc2ViZXJyeSB0aGF0IHByZXZlbnQgaXQgZnJvbSBiZWluZyBhIGdyYXBl
Run Code Online (Sandbox Code Playgroud)

是否有基于流的分割线解决方案 …

base64 go

5
推荐指数
1
解决办法
483
查看次数

Python 3.x email.message 库:尝试删除特定的标头内容,例如密件抄送

用于从 RFC822 兼容文件读取标头的库函数对我来说工作得很好,例如:

    allRecips = []
    for hdrName in ['to', 'cc', 'bcc']:
        for i in email.utils.getaddresses(msg.get_all(hdrName, [])):
            r = {
                'address': {
                    'name': i[0],
                    'email': i[1]
                }
            }
            allRecips.append(r)
Run Code Online (Sandbox Code Playgroud)

我现在想从msg上面示例中的结构中删除密件抄送收件人。我查看了del_param()这个,但无法弄清楚要传入的内容。有没有一种好方法可以删除可能存在的任何密件抄送标头(1 个或多个)?

email email-headers python-3.x

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