Authenticate an SMTP connection.
More...
Authenticate an SMTP connection.
- Parameters
-
adata | Smtp Account data |
method | Use this named method, or any available method if NULL |
- Return values
-
◆ smtp_auth_oauth()
static int smtp_auth_oauth |
( |
struct SmtpAccountData * |
adata, |
|
|
const char * |
method |
|
) |
| |
|
static |
Authenticate an SMTP connection using OAUTHBEARER - Implements SmtpAuth::authenticate() -.
- Parameters
-
adata | SMTP Account data |
method | Authentication method (not used) |
- Return values
-
Definition at line 771 of file smtp.c.
772{
774}
static int smtp_auth_oauth_xoauth2(struct SmtpAccountData *adata, const char *method, bool xoauth2)
Authenticate an SMTP connection using OAUTHBEARER/XOAUTH2.
◆ smtp_auth_xoauth2()
static int smtp_auth_xoauth2 |
( |
struct SmtpAccountData * |
adata, |
|
|
const char * |
method |
|
) |
| |
|
static |
Authenticate an SMTP connection using XOAUTH2 - Implements SmtpAuth::authenticate() -.
- Parameters
-
adata | SMTP Account data |
method | Authentication method (not used) |
- Return values
-
Definition at line 782 of file smtp.c.
◆ smtp_auth_plain()
static int smtp_auth_plain |
( |
struct SmtpAccountData * |
adata, |
|
|
const char * |
method |
|
) |
| |
|
static |
Authenticate using plain text - Implements SmtpAuth::authenticate() -.
- Parameters
-
adata | SMTP Account data |
method | Authentication method (not used) |
- Return values
-
- Note
- method is "PLAIN"
Definition at line 796 of file smtp.c.
797{
798 struct Buffer *buf = NULL;
800 int rc = -1;
801
802
804 goto error;
805
806
810
811
813 goto error;
814
815 rc = 0;
816
817error:
818 if (rc != 0)
819 {
820
822 }
824 return rc;
825}
int buf_add_printf(struct Buffer *buf, const char *fmt,...)
Format a string appending a Buffer.
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
int mutt_account_getpass(struct ConnAccount *cac)
Fetch password into ConnAccount, if necessary.
int mutt_account_getuser(struct ConnAccount *cac)
Retrieve username into ConnAccount, if necessary.
struct Buffer * buf_pool_get(void)
Get a Buffer from the pool.
void buf_pool_release(struct Buffer **ptr)
Return a Buffer to the pool.
size_t mutt_sasl_plain_msg(struct Buffer *buf, const char *cmd, const char *authz, const char *user, const char *pass)
Construct a base64 encoded SASL PLAIN message.
static int smtp_get_resp(struct SmtpAccountData *adata)
Read a command response from the SMTP server.
#define mutt_socket_send(conn, buf)
String manipulation buffer.
Login details for a remote server.
struct ConnAccount account
Account details: username, password, etc.
struct Connection * conn
Server Connection.
◆ smtp_auth_login()
static int smtp_auth_login |
( |
struct SmtpAccountData * |
adata, |
|
|
const char * |
method |
|
) |
| |
|
static |
Authenticate using plain text - Implements SmtpAuth::authenticate() -.
- Parameters
-
adata | SMTP Account data |
method | Authentication method (not used) |
- Return values
-
- Note
- method is "LOGIN"
Definition at line 836 of file smtp.c.
837{
838 char b64[1024] = { 0 };
839 char buf[1026] = { 0 };
840
841
844 {
845 goto error;
846 }
847
848
850 {
851 goto error;
852 }
853
854
857 {
858 goto error;
859 }
860
861
862 size_t len = snprintf(buf,
sizeof(buf),
"%s", adata->
conn->
account.
user);
864 snprintf(buf, sizeof(buf), "%s\r\n", b64);
866 {
867 goto error;
868 }
869
870
873 {
874 goto error;
875 }
876
877
880 snprintf(buf, sizeof(buf), "%s\r\n", b64);
882 {
883 goto error;
884 }
885
886
888 {
889 goto error;
890 }
891
892
893 return 0;
894
895error:
896
897 mutt_error(
_(
"%s authentication failed"),
"LOGIN");
898 return -1;
899}
size_t mutt_b64_encode(const char *in, size_t inlen, char *out, size_t outlen)
Convert raw bytes to null-terminated base64 string.
bool mutt_str_equal(const char *a, const char *b)
Compare two strings.
int mutt_socket_readln_d(char *buf, size_t buflen, struct Connection *conn, int dbg)
Read a line from a socket.
#define MUTT_SOCK_LOG_FULL