Exemplo n.º 1
0
func createResponse(config *Config, data *verifyData) (string, error) {
	m := new(pgpmail.Message)
	m.AddHeader("From", config.VerifyEmail)
	m.AddHeader("To", data.sender.String())
	m.AddHeader("Subject", "Nyms Mail Verification")
	m.AddHeader("X-Nyms-Verifier", "response")
	m.AddMultipart(createBody())
	attach, err := createAttachment(data)
	if err != nil {
		return "", err
	}
	m.AddMultipart(attach)
	m.PackMultiparts()
	status := m.Sign(config.KeySource, "")
	if status.Code != pgpmail.StatusSignedOnly {
		return "", fmt.Errorf("signing message failed with status code %d: %s", status.Code, status.FailureMessage)
	}
	response := m.String()
	signed, err := dkimSign(config, response)
	if err != nil {
		logger.Warning("dkim signing failed: %v", err)
		return response, nil
	}
	return signed, nil
}