|  | @@ -108,14 +108,21 @@ func sendMail(settings *setting.Mailer, from string, recipients []string, msgCon
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	auth_available, _ := client.Extension("AUTH")
 | 
	
		
			
				|  |  | +	auth_available, options := client.Extension("AUTH")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	// Possible improvement: only plain authentication is now available.
 | 
	
		
			
				|  |  | -	// Maybe in future CRAM MD5 as well?
 | 
	
		
			
				|  |  |  	if auth_available && len(settings.User) > 0 {
 | 
	
		
			
				|  |  | -		auth := smtp.PlainAuth("", settings.User, settings.Passwd, host)
 | 
	
		
			
				|  |  | -		if err = client.Auth(auth); err != nil {
 | 
	
		
			
				|  |  | -			return err
 | 
	
		
			
				|  |  | +		var auth smtp.Auth
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if strings.Contains(options, "CRAM-MD5") {
 | 
	
		
			
				|  |  | +			auth = smtp.CRAMMD5Auth(settings.User, settings.Passwd)
 | 
	
		
			
				|  |  | +		} else if strings.Contains(options, "PLAIN") {
 | 
	
		
			
				|  |  | +			auth = smtp.PlainAuth("", settings.User, settings.Passwd, host)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if auth != nil {
 | 
	
		
			
				|  |  | +			if err = client.Auth(auth); err != nil {
 | 
	
		
			
				|  |  | +				return err
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |