email_test.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package parsemail
  2. import (
  3. "bytes"
  4. "fmt"
  5. "github.com/emersion/go-message"
  6. "io"
  7. "testing"
  8. )
  9. func TestEmail_domainMatch(t *testing.T) {
  10. //e := &Email{}
  11. //dnsNames := []string{
  12. // "*.mail.qq.com",
  13. // "993.dav.qq.com",
  14. // "993.eas.qq.com",
  15. // "993.imap.qq.com",
  16. // "993.pop.qq.com",
  17. // "993.smtp.qq.com",
  18. // "imap.qq.com",
  19. // "mx1.qq.com",
  20. // "mx2.qq.com",
  21. // "mx3.qq.com",
  22. // "pop.qq.com",
  23. // "smtp.qq.com",
  24. // "mail.qq.com",
  25. //}
  26. //
  27. //fmt.Println(e.domainMatch("", dnsNames))
  28. //fmt.Println(e.domainMatch("xjiangwei.cn", dnsNames))
  29. //fmt.Println(e.domainMatch("qq.com", dnsNames))
  30. //fmt.Println(e.domainMatch("test.aaa.mail.qq.com", dnsNames))
  31. //fmt.Println(e.domainMatch("smtp.qq.com", dnsNames))
  32. //fmt.Println(e.domainMatch("pop.qq.com", dnsNames))
  33. //fmt.Println(e.domainMatch("test.mail.qq.com", dnsNames))
  34. }
  35. func Test_buildUser(t *testing.T) {
  36. u := buildUser("Jinnrry N <jiangwei1995910@gmail.com>")
  37. if u.EmailAddress != "jiangwei1995910@gmail.com" {
  38. t.Error("error")
  39. }
  40. if u.Name != "Jinnrry N" {
  41. t.Error("error")
  42. }
  43. }
  44. func TestEmailBuidlers(t *testing.T) {
  45. var b bytes.Buffer
  46. var h message.Header
  47. h.SetContentType("multipart/alternative", nil)
  48. w, err := message.CreateWriter(&b, h)
  49. if err != nil {
  50. }
  51. var h1 message.Header
  52. h1.SetContentType("text/html", nil)
  53. w1, err := w.CreatePart(h1)
  54. if err != nil {
  55. }
  56. io.WriteString(w1, "<h1>Hello World!</h1><p>This is an HTML part.</p>")
  57. w1.Close()
  58. var h2 message.Header
  59. h2.SetContentType("text/plain", nil)
  60. w2, err := w.CreatePart(h2)
  61. if err != nil {
  62. }
  63. io.WriteString(w2, "Hello World!\n\nThis is a text part.")
  64. w2.Close()
  65. w.Close()
  66. fmt.Println(b.String())
  67. }
  68. func TestEmail_builder(t *testing.T) {
  69. e := Email{
  70. From: buildUser("i@test.com"),
  71. To: buildUsers([]string{"to@test.com"}),
  72. Subject: "Title",
  73. HTML: []byte("Html"),
  74. Text: []byte("Text"),
  75. Attachments: []*Attachment{
  76. {
  77. Filename: "a.png",
  78. ContentType: "image/jpeg",
  79. Content: []byte("aaa"),
  80. ContentID: "1",
  81. },
  82. },
  83. }
  84. rest := e.BuildBytes(nil, false)
  85. fmt.Println(string(rest))
  86. }