Added an option to manually set filename of attachments
Fixes #55 Fixes #56
This commit is contained in:
parent
bd0e445b57
commit
4291610152
|
@ -151,6 +151,10 @@ func ExampleSetHeader() {
|
||||||
m.Attach("foo.jpg", gomail.SetHeader(h))
|
m.Attach("foo.jpg", gomail.SetHeader(h))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleRename() {
|
||||||
|
m.Attach("/tmp/0000146.jpg", gomail.Rename("picture.jpg"))
|
||||||
|
}
|
||||||
|
|
||||||
func ExampleMessage_AddAlternative() {
|
func ExampleMessage_AddAlternative() {
|
||||||
m.SetBody("text/plain", "Hello!")
|
m.SetBody("text/plain", "Hello!")
|
||||||
m.AddAlternative("text/html", "<p>Hello!</p>")
|
m.AddAlternative("text/html", "<p>Hello!</p>")
|
||||||
|
|
|
@ -264,6 +264,14 @@ func SetHeader(h map[string][]string) FileSetting {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Rename is a file setting to set the name of the attachment if the name is
|
||||||
|
// different than the filename on disk.
|
||||||
|
func Rename(name string) FileSetting {
|
||||||
|
return func(f *file) {
|
||||||
|
f.Name = name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// SetCopyFunc is a file setting to replace the function that runs when the
|
// SetCopyFunc is a file setting to replace the function that runs when the
|
||||||
// message is sent. It should copy the content of the file to the io.Writer.
|
// message is sent. It should copy the content of the file to the io.Writer.
|
||||||
//
|
//
|
||||||
|
|
|
@ -290,6 +290,40 @@ func TestAttachment(t *testing.T) {
|
||||||
testMessage(t, m, 1, want)
|
testMessage(t, m, 1, want)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRename(t *testing.T) {
|
||||||
|
m := NewMessage()
|
||||||
|
m.SetHeader("From", "from@example.com")
|
||||||
|
m.SetHeader("To", "to@example.com")
|
||||||
|
m.SetBody("text/plain", "Test")
|
||||||
|
name, copy := mockCopyFile("/tmp/test.pdf")
|
||||||
|
rename := Rename("another.pdf")
|
||||||
|
m.Attach(name, copy, rename)
|
||||||
|
|
||||||
|
want := &message{
|
||||||
|
from: "from@example.com",
|
||||||
|
to: []string{"to@example.com"},
|
||||||
|
content: "From: from@example.com\r\n" +
|
||||||
|
"To: to@example.com\r\n" +
|
||||||
|
"Content-Type: multipart/mixed;\r\n" +
|
||||||
|
" boundary=_BOUNDARY_1_\r\n" +
|
||||||
|
"\r\n" +
|
||||||
|
"--_BOUNDARY_1_\r\n" +
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\r\n" +
|
||||||
|
"Content-Transfer-Encoding: quoted-printable\r\n" +
|
||||||
|
"\r\n" +
|
||||||
|
"Test\r\n" +
|
||||||
|
"--_BOUNDARY_1_\r\n" +
|
||||||
|
"Content-Type: application/pdf; name=\"another.pdf\"\r\n" +
|
||||||
|
"Content-Disposition: attachment; filename=\"another.pdf\"\r\n" +
|
||||||
|
"Content-Transfer-Encoding: base64\r\n" +
|
||||||
|
"\r\n" +
|
||||||
|
base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
|
||||||
|
"--_BOUNDARY_1_--\r\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
testMessage(t, m, 1, want)
|
||||||
|
}
|
||||||
|
|
||||||
func TestAttachmentsOnly(t *testing.T) {
|
func TestAttachmentsOnly(t *testing.T) {
|
||||||
m := NewMessage()
|
m := NewMessage()
|
||||||
m.SetHeader("From", "from@example.com")
|
m.SetHeader("From", "from@example.com")
|
||||||
|
|
Loading…
Reference in New Issue