mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
Today, we pick the domain used to send the DSN from based on what we presented to the client at EHLO time, which itself may be based on the TLS negotiation (which is not necessarily trusted). This is complex, not necessarily correct, and involves passing the domain around through the queue and persisting it in the items. So this patch simplifies that handling by always using the main domain as specified by the configuration.
50 lines
919 B
Protocol Buffer
50 lines
919 B
Protocol Buffer
|
|
syntax = "proto3";
|
|
|
|
package queue;
|
|
|
|
import "github.com/golang/protobuf/ptypes/timestamp/timestamp.proto";
|
|
|
|
|
|
message Message {
|
|
// Message ID. Uniquely identifies this message, it is used for
|
|
// auditing and troubleshooting.
|
|
string ID = 1;
|
|
|
|
// The envelope for this message.
|
|
string from = 2;
|
|
repeated string To = 3;
|
|
repeated Recipient rcpt = 4;
|
|
bytes data = 5;
|
|
|
|
// Creation timestamp.
|
|
google.protobuf.Timestamp created_at_ts = 6;
|
|
}
|
|
|
|
message Recipient {
|
|
// Address to send the message to.
|
|
// This is the final one, after expanding aliases.
|
|
string address = 1;
|
|
|
|
enum Type {
|
|
EMAIL = 0;
|
|
PIPE = 1;
|
|
}
|
|
Type type = 2;
|
|
|
|
enum Status {
|
|
PENDING = 0;
|
|
SENT = 1;
|
|
FAILED = 2;
|
|
}
|
|
Status status = 3;
|
|
|
|
string last_failure_message = 4;
|
|
|
|
// Address that this recipient was originally intended to.
|
|
// This is before expanding aliases and only used in very particular
|
|
// cases.
|
|
string original_address = 5;
|
|
}
|
|
|