2015-04-28 5 views
4

Я - новичок мира Nodejs. Я хочу отправить электронное письмо со встроенным изображением. Но мой образ не показывался по электронной почте. Я думал, что это может быть моя настройка пути к файлу. Вот мои mailOptions,Каков правильный способ установки пути вложений в nodeMailer?

var mailOptions = { 
     from: '[email protected]', 
     to: to, 
     subject: subject, 
     html: html, 
     attachments: [{ 
      filename: "logo.png", 
      filePath: "/images/logo.png", 
      cid: "logo-mail" 
     }] 
    }; 

И мой каталог, который хранит мои статические файлы является

myproject/ 
     assets/ 
       images/ 
       js/ 
       styles/ 

И это мой HTML,

<img src="cid:logo-mail" /> 

Вот мой результат по электронной почте,

<img src="cid.php?mid=e_ZGHjAQV4ZQLlAGNkZQNjZGN1AQt3Zt==&amp;pj=logo-mail" alt="cid.php?mid=e_ZGHjAQV4ZQLlAGNkZQNjZGN1AQ"> 

I я не уверен, что я прав, чтобы установить путь к файлу, как это?

filePath: "/images/logo.png" 

ответ

1

Вам нужно полный путь к изображению

http://www.example.com/images/logo.png 

, так как я мог читать вашу электронную почту на gmail.com относительный путь будет переведен на

gmail.com/images/logo.png 
+1

Могу ли я использовать его с моим местным? что-то вроде этого, http: // localhost: 1337/images/logo.png –

+1

Да, это должно сработать. Если изображение появляется при вводе этого адреса в браузер, вы знаете, что оно работает правильно? :) – Molda

+0

Помните, что он будет работать только для вас. Никто другой не может получить доступ к вашему locahost. – Molda

2

Я сделал, как этот

filePath: process.cwd() + "/assets/images/logo.png" 

A Теперь он работает!

Спасибо всем за помощь.