func parseTextOnlyBody(root *Part, e *Envelope) error {
	// Determine character set
	var charset string
	var isHTML bool
	if ctype := root.Header.Get(hnContentType); ctype != "" {
		if mediatype, mparams, _, err := parseMediaType(ctype); err == nil {
			isHTML = (mediatype == ctTextHTML)
			if mparams[hpCharset] != "" {
				charset = mparams[hpCharset]
			}
		}
	}

	// Read transcoded text
	if isHTML {
		rawHTML := string(root.Content)
		// Note: Empty e.Text will trigger html2text conversion
		e.HTML = rawHTML
		if charset == "" {
			// Search for charset in HTML metadata
			if charset = coding.FindCharsetInHTML(rawHTML); charset != "" {
				// Found charset in HTML
				if convHTML, err := coding.ConvertToUTF8String(charset, root.Content); err == nil {
					// Successful conversion
					e.HTML = convHTML
				} else {
					// Conversion failed
					root.addWarning(ErrorCharsetConversion, err.Error())
				}
			}
			// Converted from charset in HTML
			return nil
		}
	} else {
		e.Text = string(root.Content)
	}

	return nil
}
func parseTextOnlyBody(root *Part, e *Envelope) error {
	
	var charset string
	var isHTML bool
	if ctype := root.Header.Get(hnContentType); ctype != "" {
		if mediatype, mparams, _, err := parseMediaType(ctype); err == nil {
			isHTML = (mediatype == ctTextHTML)
			if mparams[hpCharset] != "" {
				charset = mparams[hpCharset]
			}
		}
	}

	
	if isHTML {
		rawHTML := string(root.Content)
		
		e.HTML = rawHTML
		if charset == "" {
			
			if charset = coding.FindCharsetInHTML(rawHTML); charset != "" {
				
				if convHTML, err := coding.ConvertToUTF8String(charset, root.Content); err == nil {
					
					e.HTML = convHTML
				} else {
					
					root.addWarning(ErrorCharsetConversion, err.Error())
				}
			}
			
			return nil
		}
	} else {
		e.Text = string(root.Content)
	}

	return nil
}
func parseTextOnlyBody ( root * Part , e * Envelope ) error { // Determine character set var charset string var isHTML bool if ctype := root . Header . Get ( hnContentType ) ; ctype != " " { if mediatype , mparams , _ , err := parseMediaType ( ctype ) ; err == nil { isHTML = ( mediatype == ctTextHTML ) if mparams [ hpCharset ] != " " { charset = mparams [ hpCharset ] } } } // Read transcoded text if isHTML { rawHTML := string ( root . Content ) // Note: Empty e.Text will trigger html2text conversion e . HTML = rawHTML if charset == " " { // Search for charset in HTML metadata if charset = coding . FindCharsetInHTML ( rawHTML ) ; charset != " " { // Found charset in HTML if convHTML , err := coding . ConvertToUTF8String ( charset , root . Content ) ; err == nil { // Successful conversion e . HTML = convHTML } else { // Conversion failed root . addWarning ( ErrorCharsetConversion , err . Error ( ) ) } } // Converted from charset in HTML return nil } } else { e . Text = string ( root . Content ) } return nil }
// parseTextOnlyBody parses a plain text message in root that has MIME-like headers, but
// only contains a single part - no boundaries, etc.  The result is placed in e.
parseTextOnlyBody parses a plain text message in root that has MIME - like headers but only contains a single part - no boundaries etc . The result is placed in e .