smtp-submit.c revision 7112c5ac642aba8d96b5018c2d30ac014940654b
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen/* Copyright (c) 2006-2017 Dovecot authors, see the included COPYING file */
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainensmtp_submit_session_init(const struct smtp_submit_settings *set)
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen pool = pool_alloconly_create("smtp submit session", 128);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen session = p_new(pool, struct smtp_submit_session, 1);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen session->set.hostname = p_strdup_empty(pool, set->hostname);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen session->set.submission_host = p_strdup_empty(pool, set->submission_host);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen session->set.sendmail_path = p_strdup_empty(pool, set->sendmail_path);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainenvoid smtp_submit_session_deinit(struct smtp_submit_session **_session)
00fa8dcbc66f56daa737487c9dec7166c37de79eTimo Sirainen struct smtp_submit_session *session = *_session;
ad004e44be109684521494b5af2ad1da39b8bb27Timo Sirainensmtp_submit_init(struct smtp_submit_session *session, const char *return_path)
97db4761382024093f441e4bc78ba8b6a056504dTimo Sirainen pool = pool_alloconly_create("smtp submit", 256);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen subm->return_path = p_strdup(pool, return_path);
c0a708fa3f7b8f4fbca32052da5faf7a0125189dTimo Sirainensmtp_submit_init_simple(const struct smtp_submit_settings *set,
c49a19168dab6fda80aee16ad799a8a56d3bc18fTimo Sirainen subm = smtp_submit_init(session, return_path);
02ccba3d3be96444abd15b5254864c9151bbeb30Timo Sirainenvoid smtp_submit_deinit(struct smtp_submit **_subm)
f059a046515f4b2b15a6c2a10a6f12f6166e39a5Timo Sirainenvoid smtp_submit_add_rcpt(struct smtp_submit *subm, const char *address)
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen array_append(&subm->destinations, &address, 1);
ec23e16ed879e289d12c6e1a5f9745dd3979004aTimo Sirainenstruct ostream *smtp_submit_send(struct smtp_submit *subm)
c0a708fa3f7b8f4fbca32052da5faf7a0125189dTimo Sirainen i_assert(array_count(&subm->destinations) > 0);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen master_service_get_name(master_service), NULL), 0);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainen o_stream_set_no_error_handling(subm->output, TRUE);
e248fe370c4047cee921a91b48edc37944ab0526Timo Sirainensmtp_submit_callback(struct smtp_submit *subm, int status,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainensmtp_submit_delayed_error_callback(struct smtp_submit *subm)
caea325346da6fb1cf503b35a619467a997acbfaTimo Sirainensmtp_submit_delayed_error(struct smtp_submit *subm,
if (status < 0) {
if (status == 0) {
struct smtp_submit_run_context {
int status;
char *error;
const char **error_r)