Node.jsでメールを送信しますか?[閉まっている]


291

私は最近、最初のnode.jsのプログラミングを始めました。しかし、メールを送信できるノードからモジュールが見つからないため、メールに直接送信する連絡先フォームを作成できないことがわかりました。

node.jsメールライブラリやサンプルの連絡フォームスクリプトを知っている人はいますか?


チェックアウト: AWS-SES無料のec2アプリ用の62000メール。
Harvey

回答:


142

node-email-templatesははるかに優れたオプションです:https : //github.com/niftylettuce/node-email-templates

Windowsにも対応しています


1
これは、ドキュメントがかなり自明であることを本当に助けます。
NycCompSci 2010年


7
これは、nodemailer.comをプロジェクトで使用しているため、正常に動作し、nodejitsuはgmailのsmtpサーバー経由でメールを送信するのに問題はありませんでした。
jascha

2
過去2日間、node-email-templates立ち上がって実行するために数時間を費やしました。初期化し、後で送信するために使用するオブジェクトとしてそれを使用したいだけです。動作しません。あきらめます。
jcollum 14

チュートリアル(Nodejs GamilのOAuth2)貴重な証明masashi-k.blogspot.com.au/2013/06/...
eddyparkinson

162

Nodemailerは基本的に、Node.jsでプログラミングするときにメールを簡単に送信できるモジュールです。Nodemailerモジュールの使用方法に関する優れた例がhttp://www.nodemailer.com/にあります。Nodemailerの基本機能をインストールして使用する方法についての完全な説明は、このリンクに含まれています。

私はnpmを使用してNodemailerをインストールするのに個人的に問題があったので、ソースをダウンロードしました。npmのインストールとソースのダウンロードの両方の手順があります。

これは非常にシンプルなモジュールであり、Node.jsを使用してメールを送信したい人にはお勧めです。幸運を!


2
nodemailerが最初に動作しました!
Capy

SMTPとAmazon SESの両方でテストし、動作し、ConnectedSetsフレームワークに統合しました
Jean Vincent

設定は簡単で、設定は簡単です。サンプルコードをコピーし、私の情報に変更し(SSLセキュアについて読む)、それはうまくいきました。シンプルなメール送信者に最適です。

現在、その商用プロジェクトなので、注意が必要です。
elliotrock 2017

2
この回答には例を含める必要があります
Abraham TS

65

emailjsをチェックしてください

nodemailerを大きな添付ファイルで動作させるために多くの時間を費やした後、それ以来、emailjsに満足しています。

通常のFileオブジェクトを使用したファイルの送信をサポートし、nodemailerが必要とする巨大なバッファーはサポートしません。添付ファイルをHTMLフォームからメーラーに渡すのに手ごわい方法でリンクできることを意味します。キューイングもサポートしています。

全体として、nodejitsu pplがバージョンをベースにするためにnodemailerを選択した理由はわかりませんが、emailjsははるかに高度です。


3
しばらく使用した後、問題を修正するためにフォークする必要がありました。メール送信プロセス内でない限り、ソケットイベントは処理されず、サーバーが接続を閉じるため、アイドル状態になってしばらくすると停止しましたが、イベントを処理して内部変数をリセットするものではありませんでした。フォークバージョンはhttps://github.com/silvioster/emailjsにあります。このバージョンは、長い間安定していて、ストールはありません。
silvio

18
以前のコメントに更新し、元の作者がそのバグと他のいくつかを修正したので、フォークはもう必要ありません。最新バージョンはhttps://github.com/eleith/emailjsにある
silvio 2012年

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 2014

4
gmail以外?どうすれば独自のSMTPサーバーを構成できますか?
Balaji Boggaram Ramanarayan 2015

1
このエラーは、webpackでコンパイルした後に発生します TypeError: Cannot create property 'mailer' on string 'SMTP' at new Mail。私はこのような投稿に行き、その後このページに行きましたが、それでも失われました。
user1063287

2
@ user1063287「SMTP」パラメータを削除するだけ
Bojan Radivojevic爆撃機

1
ご存知のとおり、認証に使用した自分のメールアドレス以外に、アドレスを変更することはできません。Gmailは送信者の権限を確認できるように、送信元アドレスをそのアドレスに強制します。
ニコラスモルデカイ2018

25

@JimBastardの承認された回答には日付が付けられているようですが、私は一見して、メーラーlibが7か月以上触れられておらず、いくつかのバグがリストされており、npmに登録されていません。

nodemailerは確かに最良のオプションのように見えますが、このスレッドの他の回答で提供されるURLはすべて404です。

nodemailerはgmailやhotmailなどへの簡単なプラグインをサポートしていると主張しており、本当に美しいドキュメントも持っています。


9

いつでもAlphaMailを使用できます(開示:私はその背後にいる開発者の1人です)。

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(ダッシュボード)では、送信したデータを使用してテンプレートを編集できます。

<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
Alphamailは公式に死にました。非常に残念です-この投稿のおかげで私はそれを使い始めました。開発者の次のベンチャーの成功を祈っています。
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.