PostfixとGoogleメールアカウントを用いてPHPからメール送信( mb_send_mail() )ができない

投稿者: Anonymous stackoverflowにて初めての質問です。 不慣れな部分がありますが、どうかよろしくお願いします。 現在、「PHP+MySQLマスターブック」という書籍に沿って学習を進めているのですが、 mb_send_mail()を使って上手くメールを送信することができません。 以下のプログラムを実行すると、「メールを送信しました(以下略)」と表示されるのですが、実際にはメールが送信されている様子はありません。 ========== 解決済み ========== 原因は、DNSの設定上手くいっていないことにありました。 お手数おかけしました。 同様に (Host or domain name not found. Name service error for name=smtp.gmail.com type=MX: Host not found, try again) のエラーに悩まされている方は、おそらくDNSの設定で躓いていることが考えられるので、 システム環境設定から、Network->Advanced…->DNSと進み、 Google Public DNSの8:8:8:8を一番上に追加してみてください。 ============================== —- mail.php —– <?php $to = “<自分のgmailアドレス>@gmail.com”; $subject = “(件名)テストで送信”; $message = “(本文)受信できるかな?”; $add_header = “From: <自分のgmailアドレス>@gmail.com”; if(mb_send_mail($to,$subject,$message,$add_header)) {…(Continue Reading)

mb_send_mailがFALSEになる。sendmailのインストール&設定が必要ですか?

投稿者: Anonymous 環境 ・PHP7 ・CentOS7 現状 ・mb_send_mail実行してもメールを送れない ・FALSEが返ってくる 確認したこと ・phpinfo()で、mbstringのMultibyte Supportは、enabled ・sendmail_pathは、/usr/sbin/sendmail -t -i となっているが該当ディレクトリなし ・yumでsendmailをインストールした形跡が見当たらない 質問 ・sendmailインストールすればよいかな、と思ったのですが、下記リンク先の設定はすべて必要ですか? ・PHPでmb_send_mail実行したいだけなのですが、それはメールサーバを構築することと同義でですか? ・「sendmail」のホスト名とドメイン名とは何のことですか? 【CentOS7】sendmail 基本設定 解決 /usr/sbin/sendmail コマンドが必要なのであれば、postfix に互換コマンドがありますので、postfix をインストールするといいと思います。 回答者: Anonymous

smime.p7sからメッセージダイジェストを求めたい

投稿者: Anonymous S/MIMEで受信したデータを平文化した後、OpenSSLを使って自分で メッセージダイジェストを求めて、改ざんがないかチェックをしたいと思います。 ただ、smime.p7sからメッセージダイジェストを求める手順がわかりませんでした。 OpenSSLでなくても構わないのですが、求め方を教えて頂けますか。 今のところ、以下の手順でメッセージダイジェストの取得を進めていました。 平文部分をdata.txt、署名部をsmime.p7sとしています。 平文のメッセージダイジェスト % openssl sha1 data.txt 署名部のメッセージダイジェスト 64bitデコード % openssl enc -d -base64 -in smime.p7s -out smime64.p7s ここから、smime64.p7sに含まれる署名の取得、電子証明書の取得、署名の復号(メッセージダイジェストの取得)と進める必要があるかと思いますが、進め方がわかりません。 以下を元に、含まれる証明書の表示までは手順がわかっています。似たような方法で署名も表示できるのではないかと思ったのですが、OpenSSLのコマンド一覧などを読んでもどれが該当するのかよくわかりませんでした。 https://stackoverflow.com/questions/5678124/extract-public-certificate-from-smime-message-pkcs7-signature-with-openssl smime.p7sをASN.1形式のファイルをGUIで参照できるaatool2などを元に確認しましたが、 どの箇所が署名にあたるのかわかりませんでした。ASN.1に関する知識もあまりないため、 以下などを確認していますが、署名データの箇所となる部分を見つけられませんでした。 http://www.geocities.co.jp/SiliconValley-SanJose/3377/ 解決 openssl(1) には smime(1) サブコマンドがあります。そのオプションの -sign で署名、-verify で署名の確認を行なえます。 昔、OpenSSL smime(1) をラップする Perl モジュールを作成しました。 POD に記載したように、smime(1) に渡す/返されるデータは RFC 2822 の e-mail 形式のテキストです。ご参考まで。 https://github.com/fumiyas/openssl-hack/blob/master/lib/perl5/smime.pm 回答者: Anonymous

受信メール本文の容量を、ヘッダから確認することは出来ますか?

投稿者: Anonymous cron経由で送信した(添付ファイルなしの)メールを「Yahoo!メール」で受信すると、全文表示することが出来ません。 ロード中… ・恐らく、メール本文の容量が制限を超えているからだと思うのですが、そのことを確かめる方法はありますか? ・受信メール本文の容量を、「詳細ヘッダー」から確認することは出来ない?? 解決 詳細ヘッダーの中に表示される、Content-Length の数値を確認してください (単位: バイト)。 回答者: Anonymous

Herokuから確認メールを送信することができない

投稿者: Anonymous RailsからSendgridでメールを送信しようとしているのですが、正しく送信されません。次のエラーが原因でしょうか? sh: 1: /usr/sbin/sendmail: not found config/environments/prduction.rb config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = false config.action_mailer.default_url_options = { :host => ‘###’} config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => ‘smtp.mandrillapp.com’, :port => 25, :authentication => “login”, :user_name => ‘###’, :password => ‘###’, :domain => ‘###’, :enable_starttls_auto => true } 解決 SendGridを使うのであれば、まず使用中のHerokuインスタンスにSendGridアドオンが追加されていることを確認して下さい。 それから smtp_settings のなかに mandrillapp…(Continue Reading)

PHPからmb_send_mailを利用してメール送信した場合の、NDRの確認方法

投稿者: Anonymous PHP内から、mb_send_mailを利用してメール送信しています。 mb_send_mail(“[email protected]”, “TEST”, “Message”, “From: someone”); もし[email protected]が間違っていた場合、もしくは何らかの理由で相手先に弾かれて、NDRが返信されてきている場合、そのメールはどうやって確認できるのでしょうか。 または、送信されたメールに返信した場合、そのメールはどこに格納されるのでしょうか。 よろしくお願いいたします。 解決 配送に失敗した場合のエラーはメールのenvelope from宛に通知されます。メールのFrom: ヘッダではなく、SMTPのMAIL From:コマンドで指定されるアドレスです。 mb_send_mail()(mail()のラッパー)はシステムのsendmailコマンドを使ってメールを送信しますので、envelope fromが何になるかはその設定次第です。ユーザー名@ホスト名(FQDN)になるのが一般的ではないでしょうか。 mb_send_mail()(mail())の第5引数でsendmailコマンドに渡すオプションを指定できるので、システムのsendmailコマンドが対応していれば-f [email protected]を指定することでenvelope fromを任意のアドレスに設定することができます。 回答者: Anonymous

git push heroku master した時のNoMethodError: undefined method `to_sym’ for nil:NilClassを解消したい

投稿者: Anonymous 実現したいこと git push heroku master した時のNoMethodError: undefined method `to_sym’ for nil:NilClassを解消して、デプロイに成功させたい 背景 Action_mailerとHeroku shcedulerを使って定期的にメールを1通ユーザーに送る実装をしようと考えていました。そこで、gem figaroを使って実装進めていました。 環境 Rails:5.2.4 DB:PostgreSQL Rubyのbuildpackはインストール済 (heroku create –buildpack https://github.com/heroku/heroku-buildpack-ruby.git) heroku addons:add scheduler:standard 今起こっている問題 git push heroku masterする際に、3つのエラーが発生しており、そのうち2つは自分の昨日の記事と同じものなのですが、もう1つ、下記のようなエラーに初めて出くわしました。 remote: rake aborted! remote: NoMethodError: undefined method `to_sym’ for nil:NilClass 出てきたエラーに対しログを辿っても、意味が理解できず、解決に苦しんでおります。何か、アドバイス頂ければ幸いです。 to_sym:シンボルを返すrubyのメソッドで、production.rb内の config.action_mailer.delivery_method = ENV[‘delivery_method’].to_sym これが悪さしている?気がします。 試したこと ①gem figaroをインストール ②bundle exec figaro install…(Continue Reading)

古いCGIに残る`open(FH, ‘| sendmail -t -oi’)`をテストしたい

投稿者: Anonymous openがまだ2引数でベアワードを織り交ぜていた頃のメール送信プログラムがあります。 このメールのメッセージをテストするスクリプトを書こうとしています。 一部だけ抜粋するとこのような感じになります: require ‘jcode.pl’; require ‘mimew.pl’; open(FH, ‘| sendmail -t -oi’); print FH &mimeencode(“From: $from”) . “n”; print FH &mimeencode(“To: $to”) . “n”; print FH qq{Content-Type: text/plain; charset=”iso-2022-jp”n}; print FH &mimeencode(“Subject: $subject”) . “n”; print FH “n”; foreach $line (@lines) { print FH &jcode::jis($line, ‘sjis’) . “n”; } close(FH); とりあえずざっくりと、テストスクリプトが対象のコードを舐めた時に実際にメールを送ってしまわないように、openにsendmailらしきコマンドが渡されたら黙って1を返すよう以下のようなコードをテストに含めました。 しかし、そこから一歩進んでファイルハンドルに書き込まれた内容を評価する方法が分かりません。 BEGIN…(Continue Reading)