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 807 of file smtp.c.
808{
810}
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 818 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 832 of file smtp.c.
833{
834 struct Buffer *buf = NULL;
836 int rc = -1;
837
838
840 goto error;
841
842
846
847
849 goto error;
850
851 rc = 0;
852
853error:
854 if (rc != 0)
855 {
856
858 }
860 return rc;
861}
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 872 of file smtp.c.
873{
874 char b64[1024] = { 0 };
875 char buf[1026] = { 0 };
876
877
880 {
881 goto error;
882 }
883
884
886 {
887 goto error;
888 }
889
890
893 {
894 goto error;
895 }
896
897
898 size_t len = snprintf(buf,
sizeof(buf),
"%s", adata->
conn->
account.
user);
900 snprintf(buf, sizeof(buf), "%s\r\n", b64);
902 {
903 goto error;
904 }
905
906
909 {
910 goto error;
911 }
912
913
916 snprintf(buf, sizeof(buf), "%s\r\n", b64);
918 {
919 goto error;
920 }
921
922
924 {
925 goto error;
926 }
927
928
929 return 0;
930
931error:
932
933 mutt_error(
_(
"%s authentication failed"),
"LOGIN");
934 return -1;
935}
size_t mutt_b64_encode(const char *in, size_t inlen, char *out, size_t outlen)
Convert raw bytes to a 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
Log everything including full protocol.