8

自宅に静的 IP を持つサーバーがあり、ドメインを使用して独自の Web ページを提供していますが、すべて正常に動作しています。

私のウェブページでは、メールアドレスとパスワードで登録できます。nodemailer というノードモジュールを登録して、Google アカウントからメールを送信すると、問題は Google アカウントに送信メールの制限があることです。

そのため、nodemailer モジュールを自宅のサーバーに接続する必要があります。

私はグーグルで検索しますが、同様の答えはありません。

nodejsでpostfixを使用するには??

http://www.postfix.org/

またはnodemailerでharakaモジュールを使用する方法

https://github.com/baudehlo/Haraka

質問を繰り返します。私のサーバーから、私の Web に登録しているすべての電子メール ユーザーに電子メールを送信する必要があります。

例えば...

ユーザー jose@gmail.com 私のウェブに登録する

nodemailer の設定は...

exports.newRegistration=function(parametros,callback)
{
    var mailOptions = 
    {
        from: "<myemailingoogle@gmail.com>",//my email
        to: parametros.useremail,//user email
        subject: 'Welcome '+parametros.useremail+'.',
        html:   '<br><b>Hello</b><br>'+ // html 

    };
    var smtpTransport = nodemailer.createTransport("SMTP",
    {
        service: "Gmail",
        secureConnection: true,
        auth:
        {
            user: "myemailingoogle@gmail.com",
            pass: "7ftera359c28a",
        },
    });
    smtpTransport.sendMail(mailOptions, function(err, response)
    {
        if(err)
        {
            smtpTransport.close();
            console.warn(err);
            return callback(err,null);
        }else{
            smtpTransport.close();
            return callback(null,response);
        }
    });
}

メールは問題なく送信されますが、1 日あたりの制限があります。

そのため、メールサーバーを使用して無制限にメールを送信する必要があります.... tnx

編集2

apt-get で mailutils をインストールします

そして今私は試します

mail mymailin@gmail.com
Cc: // press enter
Subject: Welcome

Hello Mail.

// Ctrl+D

これによりメールボックスにメールが送信され、root@mail.mydomain.com から送信されたメールがスパムで受信されます

それで、postfixは機能していますが、まだemailjsまたはnodemailerでメールを送信できません...

メールまたはノードメーラーでメールを送信しようとすると、これが表示されます

smtp: '535 5.7.8 Error: authentication failed: generic failure\n'

そのエラーと認証ログインエラーをGoogleで検索すると、システムにログインできません。だから私はtelnetで試します

telnet localhost 25
ehlo localhost
250-mydomain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail to: myuserin@gmail.com
501 5.5.4 Syntax: MAIL FROM:<address>
mail from: info@mydomain.com
250 2.1.0 Ok
rcpt to: myuserin@gmail.com
451 4.3.0 <myuserin@gmail.com>: Temporary lookup failure
data
554 5.5.1 Error: no valid recipients
AUTH LOGIN
503 5.5.1 Error: MAIL transaction in progress

もう一度やり直します

220 mydomain.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-mydomain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 VXNlcm5hbWU6
UbuntuUser
535 5.7.8 Error: authentication failed: another step is needed in authentication

そして再びルートで

220 mydomain.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-mydomain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login
334 VXNlcm5hbWU6
root
334 UGFzc3dvcmQ6
rootPassword
535 5.7.8 Error: authentication failed: another step is needed in authentication

これはログファイルです

Jun 20 15:50:16 myname postfix/smtpd[12528]: warning: localhost[127.0.0.1]:             SASL login authentication failed: another step is needed in authentication

それだけです...これのどこに問題がありますか???

4

2 に答える 2

7

これも行う必要がありましたが、Azure 仮想 Ubuntu Linux サーバーでノード サーバーを実行しています。Ubuntuを実行している場合、ホームサーバーから同じ手順が機能すると思います。これが私が見つけたものです:

このガイドを使用して、postfix メール サーバーをインストールしました。

https://help.ubuntu.com/community/Postfix

最初は大変な作業のように見えましたが、私にとってはかなり簡単に機能しました。

node.js から送信メールを送信する最も簡単な方法は、emailjs を使用することであることがわかりました。

http://github.com/eleith/emailjs.git

送信されたメールがスパムとしてマークされることがよくあります。これを回避するには、ドメイン名を管理している場所 (私は enom を使用) に移動し、SPF レコードを構成して、送信メールが正当に見えるようにします。

これは、emailjs を使用してメールを送信するための node.js モジュールです。

    var email   = require("emailjs");

    postfixSend = function postfixSend(emailInfo, callback) {

        var server  = email.server.connect({
            user:    "yourEmailAccountUser", 
            password: "yourPassword", 
            host:    "localhost", 
            ssl:     false
        });

        server.send({
            text:    emailInfo.msg, 
            from:    emailInfo.from, 
            to:      emailInfo.to,
            subject: emailInfo.subject
            }, function(err, message) {
                callback(err);
        });

    }

    exports.postfixSend = postfixSend;
于 2013-06-20T11:42:33.247 に答える