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 803 of file smtp.c.
804{
806}
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 814 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 828 of file smtp.c.
829{
830 struct Buffer *buf = NULL;
832 int rc = -1;
833
834
836 goto error;
837
838
842
843
845 goto error;
846
847 rc = 0;
848
849error:
850 if (rc != 0)
851 {
852
854 }
856 return rc;
857}
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 868 of file smtp.c.
869{
870 char b64[1024] = { 0 };
871 char buf[1026] = { 0 };
872
873
876 {
877 goto error;
878 }
879
880
882 {
883 goto error;
884 }
885
886
889 {
890 goto error;
891 }
892
893
894 size_t len = snprintf(buf,
sizeof(buf),
"%s", adata->
conn->
account.
user);
896 snprintf(buf, sizeof(buf), "%s\r\n", b64);
898 {
899 goto error;
900 }
901
902
905 {
906 goto error;
907 }
908
909
912 snprintf(buf, sizeof(buf), "%s\r\n", b64);
914 {
915 goto error;
916 }
917
918
920 {
921 goto error;
922 }
923
924
925 return 0;
926
927error:
928
929 mutt_error(
_(
"%s authentication failed"),
"LOGIN");
930 return -1;
931}
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.