Node.js로 이메일을 보내시겠습니까? [닫은]


291

최근에 첫 번째 node.js 프로그래밍을 시작했습니다. 그러나 전자 메일을 보낼 수있는 노드에서 모듈을 찾을 수 없으므로 전자 메일로 바로 보내는 연락처 양식을 만들 수 없다는 것을 알았습니다.

누구든지 node.js 이메일 라이브러리 또는 샘플 문의 양식 스크립트를 알고 있습니까?


체크 아웃 : EC2 앱용 AWS-SES 무료 62000 이메일.
Harvey

답변:


142

https://github.com/niftylettuce/node-email-templates 는 node-email-templates가 훨씬 더 나은 옵션입니다.

그것은 또한 창을 지원합니다


1
이것은 실제로 문서가 매우 자명 한 설명을 돕습니다.
NycCompSci

4
github.com/marak/node_mailer 는 더 이상 사용되지 않습니다. 이 사용해야 github.com/andris9/Nodemailer
user470370

7
nodemailer.com은 이제 내 프로젝트에서 사용하고 있기 때문에 잘 작동합니다. nodejitsu는 gmail의 smtp 서버를 통해 메일을 보내는 데 아무런 문제가 없었습니다.
jascha

2
지난 이틀 동안 node-email-templates일어나서 달리 려고 몇 시간을 보냈 습니다. 초기화하는 객체로 사용하고 나중에 보내기 위해 사용하고 싶습니다. 작동하지 않습니다. 포기.
jcollum

튜토리얼 가치 (Nodejs Gamil OAuth2를) 입증 masashi-k.blogspot.com.au/2013/06/...
eddyparkinson

162

Nodemailer는 기본적으로 Node.js로 프로그래밍 할 때 이메일을 쉽게 보낼 수있는 모듈입니다. http://www.nodemailer.com/에 Nodemailer 모듈을 사용하는 방법에 대한 좋은 예가 있습니다. Nodemailer의 기본 기능을 설치하고 사용하는 방법에 대한 전체 지시 사항이이 링크에 포함되어 있습니다.

npm을 사용하여 Nodemailer를 개인적으로 설치하는 데 문제가 발생하여 소스를 다운로드했습니다. npm 설치 및 소스 다운로드에 대한 지침이 있습니다.

이것은 사용하기 매우 간단한 모듈이며 Node.js를 사용하여 전자 메일을 보내려는 사람에게 권장합니다. 행운을 빕니다!


2
nodemailer는 처음에 일했습니다!
Capy

SMTP와 Amazon SES로 테스트 한 결과, 저에게 효과적이며 ConnectedSets 프레임 워크에 통합되었습니다
Jean Vincent

간단하고 쉬운 설정이 아닙니다. 예제 코드를 복사하고 내 정보로 변경하고 (SSL 보안에 대해 읽음) 방금 작동했습니다. 간단한 이메일 발신자에게 좋습니다!

지금은 상업적인 프로젝트이므로 경고하십시오.
elliotrock

2
이 답변에는 예가 포함되어야합니다
Abraham TS

65

emailjs를 확인하십시오

노드 메일러가 큰 첨부 파일을 사용하도록 노력하는 데 많은 시간을 낭비한 후 emailjs를 발견하고 행복해졌습니다.

nodemailer가 필요로하는 큰 버퍼가 아닌 일반 File 객체를 사용하여 파일 보내기를 지원합니다. 첨부 파일을 html 양식에서 메일러로 전달하기 위해 fe에 링크 할 수 있음을 의미합니다. 또한 대기열을 지원합니다.

결국 nodejitsu ppl이 왜 버전을 기반으로 nodemailer를 선택했는지 전혀 알지 못합니다. emailjs는 훨씬 고급입니다.


3
장기간 사용 후 문제를 해결하기 위해 포크해야했습니다. 메일 전송 프로세스가 아니라면 소켓 이벤트를 처리하지 않으므로 서버가 연결을 닫을 때까지 유휴 상태가 된 후에 멈추었습니다. 이벤트를 처리하고 내부 변수를 재설정하는 것이 아닙니다. 분기 버전은 https://github.com/silvioster/emailjs 에서 찾을 수 있습니다 . 이 버전은 현재 중단없이 오랫동안 안정적으로 작동하고 있습니다.
silvio

18
이전 의견으로 업데이트하면 원래 작성자가 해당 버그 및 기타 버그를 수정했기 때문에 더 이상 포크가 필요하지 않습니다. 최신 버전에 있어야 https://github.com/eleith/emailjs
실비오

1
nodemailer 지원 첨부 파일뿐만 아니라 "큰 버퍼", 또한 스트림
JoshuaDavid

57

nodemailer 모듈을 사용하여 이메일을 보내는 완전한 코드

var mailer = require("nodemailer");

// Use Smtp Protocol to send Email
var smtpTransport = mailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "gmail_id@gmail.com",
        pass: "gmail_password"
    }
});

var mail = {
    from: "Yashwant Chavan <from@gmail.com>",
    to: "to@gmail.com",
    subject: "Send Email Using Node.js",
    text: "Node.js New world for me",
    html: "<b>Node.js New world for me</b>"
}

smtpTransport.sendMail(mail, function(error, response){
    if(error){
        console.log(error);
    }else{
        console.log("Message sent: " + response.message);
    }

    smtpTransport.close();
});

4
보다 사용하기 쉬운 Nodemailer 방법을 찾았 습니다 node-email-templates. 어쩌면 기본 일반 텍스트 / 기본 HTML 전자 메일을 보내려고했기 때문일 수도 있지만 문자 그대로 2 분 안에 설치되어 실행 node-email-templates되는 더 많은 방법이 필요하다는 것을 알았 Nodemailer습니다.
JVG

4
Gmail 이외의? 자체 SMTP 서버를 어떻게 구성 할 수 있습니까?
Balaji Boggaram Ramanarayan

1
webpack으로 컴파일 한 후이 오류가 발생 TypeError: Cannot create property 'mailer' on string 'SMTP' at new Mail합니다. 내가 좋아하는 게시물에 갔어요 다음 이 페이지를 여전히 잃었다.
user1063287

2
@ user1063287 "SMTP"매개 변수 만 제거
Bojan Radivojevic Bomber

1
아시다시피 주소를 인증에 사용한 자신의 이메일 주소 이외의 다른 주소로 변경할 수 없습니다. Gmail은 발신인의 권한을 확인할 수 있도록 발신인 주소를 해당 주소로 강제 전송합니다.
Nicholas Mordecai

25

@JimBastard의 승인 된 답변은 날짜가 지난 것으로 보였으며, 7 개월 이상 메일러 lib에 손대지 않았고 여러 버그가 나열되어 더 이상 npm에 등록되지 않았습니다.

nodemailer는 확실히 최고의 옵션처럼 보이지만이 스레드의 다른 답변에 제공된 URL은 모두 404입니다.

nodemailer는 Gmail, 핫메일 등에 쉽게 플러그인을 지원한다고 주장하며 정말 아름다운 문서를 가지고 있습니다.


9

당신은 항상 AlphaMail을 사용할 수 있습니다 ( 공개 : 나는 그 뒤에있는 개발자 중 하나입니다) ).

NPM으로 설치하십시오 .

npm install alphamail

AlphaMail 계정에 가입하십시오. 토큰을 얻은 다음 AlphaMail 서비스로 전송을 시작할 수 있습니다.

var alphamail = require('alphamail');

var emailService = new alphamail.EmailService()
    .setServiceUrl('http://api.amail.io/v1/')
    .setApiToken('YOUR-ACCOUNT-API-TOKEN-HERE');

var person = {
    id: 1234,
    userName: "jdoe75",
    name: {
        first: "John",
        last: "Doe"
    },
    dateOfBirth: 1975
};

emailService.queue(new alphamail.EmailMessagePayload()
    .setProjectId(12345) // ID of your AlphaMail project (determines template, options, etc)
    .setSender(new alphamail.EmailContact("Sender Company Name", "from@example.com"))
    .setReceiver(new alphamail.EmailContact("John Doe", "to@example.org"))
    .setBodyObject(person) // Any serializable object
);

그리고 AlphaMail GUI ( Dashboard )에서 전송 한 데이터로 템플릿을 편집 할 수 있습니다.

<html>
    <body>
        <b>Name:</b> <# payload.name.last " " payload.name.first #><br>
        <b>Date of Birth:</b> <# payload.dateOfBirth #><br>

        <# if (payload.id != null) { #>
            <a href="http://company.com/sign-up">Sign Up Free!</a>
        <# } else { #>
            <a href="http://company.com/login?username=<# urlencode(payload.userName) #>">Sign In</a>
        <# } #>
    </body>
</html>

템플릿은 Comlang 으로 작성되었으며 이메일을 위해 특별히 설계된 간단한 템플릿 언어입니다.


12
알파 메일은 이제 공식적으로 죽었습니다. 매우 안타깝게도-이 게시물 때문에 정확하게 사용하기 시작했습니다. 다음 벤처 기업에 개발자 모두를 기원합니다.
masotime 2014 년



3

npm 에는 패키지가 몇 개 있지만 아직 1.0에 도달 한 것은 없습니다. 추천 상품 npm list mail:

email@0.2.2
mail@0.1.1
mailer@0.3.0


2

캠페인 은 Node에서 이메일을 보내기위한 포괄적 인 솔루션이며 매우 간단한 API와 함께 제공됩니다.

당신은 이것을 이렇게 좋아합니다.

var client = require('campaign')({
  from: 'you@gmail.com'
});

이메일을 보내려면 무료로 제공되는 Mandrill 을 사용할 수 있습니다 . 다음과 같이 API 키를 설정하십시오.

process.env.MANDRILL_APIKEY = '<your api key>';

(다른 제공자를 사용하여 이메일을 보내려면 문서를 확인하십시오)

그런 다음 이메일을 보내려면 다음과 같이하십시오.

client.sendString('<p>{{something}}</p>', {
  to: ['someone@gmail.com', 'someone.else@gmail.com'],
  subject: 'Some Subject',
  preview': 'The first line',
  something: 'this is what replaces that thing in the template'
}, done);

GitHub 리포지토리에는 꽤 광범위한 문서가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.