質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

Q&A

解決済

2回答

2088閲覧

haskellによるGmailのSMTP認証エラー

hurou927

総合スコア12

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

0グッド

0クリップ

投稿2016/04/23 07:30

###前提・実現したいこと
HaskellによるSMTPでのGmailの送信を行いたいです.
Gmailの設定は, 安全性の低いアプリの許可を有効にしており2段階認証は無効にしています.
現段階でSMTPの認証エラーが出ているようです.
Pythonを用いたSMTPの同ユーザの認証はできています.
エラーを解決しメール送信が可能となるよう, 御教授ください.

###発生している問題・エラーメッセージ
SMTP認証のために, 以下の3つのパッケージを試してみたのですがそれぞれSMTP認証エラーが出ます.

  • Network.Mail.Client.Gmail
  • Network.HaskellNet.SMTP
  • Network.Mail.SMTP

特に, Network.Mail.Client.Gmailについてのエラーメッセージを挙げます.

gmail: ParseError "Expected SMTP reply code \"250\", but recieved SMTP reply code \"501\"."

http://haskell.1045720.n5.nabble.com/Sending-email-td5834292.html
を参考にし, 安全性の低いアプリの許可を有効/無効どちらも試したのですが同様のエラーが出ました.
###該当のソースコード

haskell

1{-# LANGUAGE OverloadedStrings #-} 2import System.IO 3import Network.Mail.Client.Gmail 4import Network.Mail.Mime 5 6user = "user@gmail.com" 7pass = "pass" 8from = (Address Nothing "user@gmail.com") 9to = [(Address Nothing "to@gmail.com")] 10cc = [] 11bcc = [] 12sub = "test-haskell" 13body = "hello world!\n" 14atta = [] 15lit = 30000000 16 17 18main :: IO () 19main = do 20 sendGmail user pass from to cc bcc sub body atta lit 21

参考 : http://qiita.com/satosystems/items/c6c57d6d3b813d3dcb23
###試したこと
Pythonを用いたemail.mime.textではSMTP認証およびメール送信に成功しています.

###補足情報(言語/FW/ツール等のバージョンなど)
OS : Linux version 4.1.21-1-MANJARO
GHC: Version 7.10.3
smtps-gmail : 1.3.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

プログラム側の直接的な問題はわかりませんが、

gmail: ParseError "Expected SMTP reply code \"250\", but recieved SMTP reply code \"501\"."

これは、

  1. SMTP 250 = 要求された処理は完了
  2. SMTP 501 = パラメータまたは引数の文法に間違いアリ

との応答ですので、SMTPを叩くシーケンスは、あっていますが、流し込んでいるパラメータに問題がありとのメッセージです。
よって認証エラーの段階まで至っていないようです。

user = "user@gmail.com" pass = "pass" from = (Address Nothing "user@gmail.com") to = [(Address Nothing "to@gmail.com")] cc = [] bcc = [] sub = "test-haskell" body = "hello world!\n"

の内容部分あたりの流し込んでいるパラメータなどを、再度よく確認されたらと思います。
すいませんが、Haskell、はよく分かりませんので、、、ヒントになればということで。

投稿2016/04/23 09:29

ItoTomonori

総合スコア1283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

smtps-gmailのアップデート(1.3.1->1.3.2)によって解決しました

投稿2016/06/17 02:42

hurou927

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問