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 778 of file smtp.c.
779{
781}
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 789 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 803 of file smtp.c.
804{
805 struct Buffer *buf = NULL;
807 int rc = -1;
808
809
811 goto error;
812
813
817
818
820 goto error;
821
822 rc = 0;
823
824error:
825 if (rc != 0)
826 {
827
829 }
831 return rc;
832}
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 843 of file smtp.c.
844{
845 char b64[1024] = { 0 };
846 char buf[1026] = { 0 };
847
848
851 {
852 goto error;
853 }
854
855
857 {
858 goto error;
859 }
860
861
864 {
865 goto error;
866 }
867
868
869 size_t len = snprintf(buf,
sizeof(buf),
"%s", adata->
conn->
account.
user);
871 snprintf(buf, sizeof(buf), "%s\r\n", b64);
873 {
874 goto error;
875 }
876
877
880 {
881 goto error;
882 }
883
884
887 snprintf(buf, sizeof(buf), "%s\r\n", b64);
889 {
890 goto error;
891 }
892
893
895 {
896 goto error;
897 }
898
899
900 return 0;
901
902error:
903
904 mutt_error(
_(
"%s authentication failed"),
"LOGIN");
905 return -1;
906}
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.