1

SMTP 認証を使用してメールを送信するフォームを作成しようとしていますが、エラーが発生し続けます。私はオンラインでたくさんの投稿を読みましたが、これは私がこれまでに思いついたコードです。以下のコードに何か問題があると思いますか? どんな助けでも大歓迎です。

ありがとうボブ

$configSMTP = array(  
    'port' => 587,  
    'auth' => 'login',  
    'username' => '***',  
    'password' => '***'  
);

$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $configSMTP);  
$mail = new Zend_Mail();

$mail->setReplyTo($config['replyto']);  
$mail->setBodyText($message);  
$mail->setFrom($params[$config['emailID']], $params[$config['nameID']]);  
$mail->addTo($config['sendto']);  
$mail->setSubject($config['subject']);

try {  
    $mail->send($transport);  
} catch(Exception $ex) {  
    Mage::getSingleton('core/session')->addError('There was an error submitting your  request.');
}
4

3 に答える 3

2

Mandril の SMTP は TLS を使用します。

http://help.mandrill.com/entries/21738477-What-SMTP-ports-can-I-use-

構成配列で有効にします。

$configSMTP = array(
    'ssl' => 'tls',  
    'port' => 587,  
    'auth' => 'login',  
    'username' => '***',  
    'password' => '***'  
);
于 2015-03-30T02:22:46.293 に答える
0

Zend Mailのリソース プラグインに関するセクションを参照してください。オプションのより良いリストを提供し、app.ini ファイルを介してそれらを割り当てる方法を示します。

とはいえ、あなたの議論が有効であると仮定すると、それは問題ないように見えます。

どの例外をキャッチしていますか? エラーメッセージが表示されるはずです。このマシンからメール サーバーに telnet で接続できますか? ネットワーク/認証の問題を解消したい。

于 2012-10-05T16:54:38.097 に答える
0

どの例外が発生しているのかを知らずに言うのは難しいです。

いくつかの理由が考えられます。SMTP サーバーに接続できますか? ポート 587 は本当に開いていますか? ファイアウォールを使用していますか? 使用している場合、そのポートへの接続がブロックされている可能性がありますか? それらの資格情報が有効であると本当に確信していますか? SMTP サーバーに手動で接続しようとしましたか?

そうでない場合は、Telnet でできる方法を参照してください: Telnetを使用して SMTP サーバーをテストする方法

また、トランザクション メール サービスを使用することもできます。そうすれば、SMTP サーバーを管理したり、配信可能性について考えたりする必要さえありません。他の誰かにアウトソーシングするだけです。

さまざまなプロバイダーがあり、そのうちのいくつかは次のとおりです。

AlphaMail を使用している場合は、AlphaMail PHP クライアントを使用して、以下の例のようにメールを送信できます。

include_once("comfirm.alphamail.client/emailservice.class.php");

$email_service = AlphaMailEmailService::create()
    ->setServiceUrl("http://api.amail.io/v1")
    ->setApiToken("YOUR-ACCOUNT-API-TOKEN-HERE");

$person = new stdClass();
$person->userId = "1234";
$person->firstName = "John";
$person->lastName = "Doe";
$person->dateOfBirth = 1975;

$response = $email_service->queue(EmailMessagePayload::create()
    ->setProjectId(12345) // You AlphaMail project (determines template, options, etc)
    ->setSender(new EmailContact("Sender Company Name", "from@example.com"))
    ->setReceiver(new EmailContact("Joe Doe", "to@example.org"))
    ->setBodyObject($person) // Any serializable object
);

テンプレートは、 Comlangテンプレート言語を使用して AlphaMail ダッシュボードで作成されます。これは、コードを掘り下げなくても、いつでも簡単にメールを編集できることを意味します。Comlang のテンプレートは次のようになります。

<html>
    <body>
        <b>Name:</b> <# payload.firstName " " payload.lastName #><br>
        <b>Date of Birth:</b> <# payload.dateOfBirth #><br>

        <# if (payload.userId != null) { #>
            <a href="/sign-up">Sign Up Free!</a>
        <# } else { #>
            <a href="/login?id=<# payload.userId #>">Sign In</a>
        <# } #>
    </body>
</html>
于 2012-10-05T19:28:45.287 に答える