• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sp_send_dbmailでの戻り値について)

sp_send_dbmailでの戻り値について

このQ&Aのポイント
  • エラーとして処理したい際、エラー値を取得することができず、困っています。
  • 送信が成功した場合、IDが入ってくるとヘルプに記載がありましたが、メール送信の成否に関わらず0でした。
  • メール送信プログラムでエラーが発生した場合、エラーナンバーを返す仕組みを実装しました。

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

あまり詳しくはないのですが、 msdb.dbo.sp_send_dbmail は、データベース メール キューに格納するところまでしか処理しなくって、 実際に、メールサーバとの接続をはじめとした送信処理は別のプログラムが動いているので データベース メール キューに格納することができたら戻り値0で戻ってくる。 実際に、メールサーバとの接続をはじめとした送信処理はその後で動くはずです。 >【mailitemid】のヘルプを見ると送信が成功した場合、IDが入ってくる のは、 mailitem_id パラメタ。OUTPUTをつけて変数をセットしておくとそこに値がはいるはず。 http://technet.microsoft.com/ja-jp/library/ms190307.aspx より。 で、処理結果を知りたければ、上記のIDを元に http://technet.microsoft.com/ja-jp/library/ms187646.aspx あたりに載って入るViewを探してみるしかないです。 (どのviewを見ればいいかなどは試してみないとわからないので。)

bows_0307
質問者

お礼

お礼が遅くなってしまい御免なさい メールのカタログビューでる【sysmail_allitems 】を見て 判断する事に致しました。 有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • if( mb_send_mail( ・・・) ) {・・・} とするとメールが送信されてしまいます

    下記のようにすると同じメールが2発送信されてしまいます。 ("当たり前だ!" と言われそうですが) if( $reqmailad != "" ){ mb_send_mail( $reqmailad, $subject, $body, $header ); } if( mb_send_mail( $reqmailad, $subject, $body, $header ) ){ echo "${reqmailad} 宛にメールを送信しました。"; } 「$reqmailad != ""」 ならばメールを送信し、メール送信を確認の上、 「echo "${reqmailad} 宛にメールを送信しました。";」 とやりたい(メール送信は1発だけ)のですが、未熟者の私にはその方法がわかりません。 なにとぞお助けくださいませ。

    • ベストアンサー
    • PHP
  • PHP foreachを使ってループしたい

    こんばんは。 PHPで複数の宛先でメールを送信したいと思っております。 そこでメールフォームでまず mail.php foreach ($arr as $value) { print'<input type="hidden" name="mail[]" value="'. $value .'">'; } f-mail.php $_POST['mail']で取得しそれを$valとして、print_r($val);で表示すると Array ( [0] => アドレスA [1] =>アドレスB ) と表示されます。 その複数のアドレスを //PEAR::MailCu require_once '/Mail.php'; //PEAR::Mail_mimeCu require_once '/mimeDecode.php'; //送信データを設定する $recipients= $val; $new_from = 'hoge@hoge.com'; $subject = mb_encode_mimeheader(mb_convert_encoding("$subject1", "JIS", "auto"), "JIS"); $body =$body1; //メールを送信する $headers = array(); $headers['From'] = $new_from; $headers['To'] = $recipients; $headers['Subject'] = $subject; $headers['Sender'] = $new_from; $mail = Mail::factory('sendmail'); $result = $mail->send($recipients, $headers, $body); ・LoopでToを変更しながら繰り返し送信する事がしたいのですがforeachでどう設定していいかわかりません。マニュアルもみたのですが、混乱してしまったので ご指導、ご教授のほど宜しくお願い致します。

    • 締切済み
    • PHP
  • 関数の戻り値の確認について

    accessで関数を使用していました sqlserverでのスカラ値関数を設定しましたが戻り値を確認したいのですがprintを記述すると関数の中では使用できませんとエラーになってしまいます?戻り値を確認する方法はないでしょうか じつは下記ストアドから関数を呼び出して結果をテーブルにインサートすると小数点以下のデータが消えています?そこで戻り値が正しいか確認したいのです。accessの場合には少数以下正常に出ます なにかprgの記述がまちがっているのでしょうかご指導おねがいします ----INSERT INTO ストアド----Sum(dbo.scfc_残業時間([残業H])) AS 残業Z----GROUP BY ****---- ------スカラ値関数---dbo.scfc_残業時間---------------------------- set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER FUNCTION [dbo].[scfc_残業時間] ( @ZAN nvarchar(5)) RETURNS real AS BEGIN DECLARE @ZANGYOU int DECLARE @ZANGYOU_H real if (not(@ZAN is null)) if len(@ZAN)= 4 SET @ZANGYOU = convert(int,LEFT(@ZAN,1))*60 + convert(int,substring(@ZAN,3,2))*1 ELSE SET @ZANGYOU = convert(int,LEFT(@ZAN,2))*60 + convert(int,substring(@ZAN,4,2))*1 ELSE SET @ZANGYOU= 0 IF @ZANGYOU > 0 SET @ZANGYOU_H = floor(@ZANGYOU/60*10000)/10000 RETURN @ZANGYOU_H END

  • PHPでHTMLメールを送信、文字化けします。

    Mail/mime.php を利用してHTMLメールの送信をしようとしています。 試行錯誤をしているのですが、どうしても文字化けしてしまいます。 データベースから取得したデータをHTMLメールにして送信したいのですが、 このままでは、タイトルはきちんと送れていますが、本分が文字化けします。 何か抜けたり、設定が変だったりはありますでしょうか? ご教授お願いいたします。 以下にソースを記しています。 データベースとPHPのソースはどちらも【UTF-8】です。 /*-------------------ここから データベースより取得----------*/ $recipients //送信先 $sender //送信元 $Subject //タイトル $body //本文 /*--------------------ここまでデータベースより取得--------------*/ mb_language("japanese"); mb_internal_encoding("UTF-8"); require_once("Mail.php"); require_once("Mail/mime.php"); $params = array( "host" => "自ドメイン", "port" => 587, "auth" => true, "username" => "送信元アカウント", "password" => "********" ); $mailObject = Mail::factory("smtp", $params); $mimeObject = new Mail_Mime("\n"); $mimeObject -> setHTMLBody($body); $bodyParam = array( "head_charset" => "ISO-2022-JP", "html_charset" => "Shift_Jis" ); $body = $mimeObject -> get($bodyParam); $addHeaders = array( "To" => "$recipients", "From" => "$sender", "Subject" => mb_encode_mimeheader("$Subject") ); $headers = $mimeObject -> headers($addHeaders); $mailObject -> send($recipients, $headers, $body);

    • ベストアンサー
    • PHP
  • メール送信で文字化け

    メール送信で件名が文字化けしてしまいます。 カテゴリ内には同様の質問もあるようですが、 解決できないので、投稿しました。 以下のようなコードです。 $to= "aa@aa.aa"; $from= "bb@bb.bb"; $subject= "メール送信テスト"; $headers= "From:$from"; $subject = i18n_mime_header_encode(i18n_convert($subject, "JIS")); $name= $_POST["name"]; $sub= $_POST["sub"]; $body= $_POST["body"]; $message="$name \n $sub \n $body \n"; if(mail($to, $subject, $message,$headers)){ echo "送信完了"; }else{ echo "送信エラー"; } ちなみに、 $subject= base64_encode($subject); とかもやってみたけど駄目でした。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • SMTP接続でのPEARメール送信の差出人がsoftbankのみ表示さ

    SMTP接続でのPEARメール送信の差出人がsoftbankのみ表示されなくて困っております。 require_once("Mail.php"); require_once("Mail/mimeDecode.php"); mb_internal_encoding('UTF-8'); mb_language("ja"); $params = array( "host" => "***", "port" => 587, "auth" => true, "username" => "***", "password" => "***" ); $mailObject = Mail::factory("smtp", $params); $internal = 'utf-8'; $input = 'utf-8'; $target = 'ISO-2022-JP'; $recipients = "hoge@hoge.com"; $from_name = "日本語"; $from_name = mb_convert_encoding($from_name,$input,mb_detect_encoding($from_name)); $subject = "テスト"; $subject = mb_convert_encoding($subject,$input,mb_detect_encoding($subject)); $headers = array( "To" => $from, "From" => mb_encode_mimeheader($from_name,$target)."<***>", "Subject" => mb_encode_mimeheader($subject,$target), "Return-Path" => mb_encode_mimeheader($subject,$target)."<***>", ); $body = "テスト"; $body = mb_convert_encoding($body,$target,mb_detect_encoding($body)); $mailObject -> send($recipients, $headers, $body); なかなか説明が難しいので、手っ取り早くコードを書き出しましたが、 このphpファイルを使ってメールを送信しますと、 PCメール、WEBメール(hotmail)、携帯メール(DOCOMO,AU,SOFTBANK) 全て文字化けなく送信出来ている状況です。 上記のうち、差出人が受信側で表示されるのはDOCOMO以外全てだと思うのですが、 (もちろん携帯は機種によっては例外的に表示されないのもあるかと) 他のPCメールからは日本語の差出人が確認できるSOFTBANK機種でメールを 受信しますと、(差出人が設定されていない場合と同じ)メールアドレスのみが 表示されてしまう状態です。 前述のphpファイルは、SOFTBANK以外の差出人設定可能なPC,WEB,AUは 全て差出人の設定が確認できております。その問題のSOFTBANKも、差出人が 設定されないだけで、件名本文ともに文字化けせず、正常に受信が出来ています。 ネットで色々と探してみましたが、同様の状況が確認できず、 どなたかお力添えいただけましたら幸いかと思い、質問した次第です。 どうかよろしくお願いいたします。

    • 締切済み
    • PHP
  • mb_send_mailでメール送信できない

    次のようなコードを使っているのですが、メールも送信できていません。 error_reportingでエラーをチェックしようとしても何も表示されません。 ブラウザには false しか表示されません。 サーバーはxserber,php5.3を利用しています。 メールアドレスの変更、サブジェクトを空、ボディを空、など試してみましたが、 falseのままで一度も成功しません。 phpファイルはUTF-8で作成しています。 ずっと悩んでいます。よろしくお願いします。 function sendMail( $to, $subject, $body ){ error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); //言語設定、内部エンコーディングを指定する mb_language("japanese"); mb_internal_encoding("UTF-8"); $from = FROM_MAIL; //送信 if( mb_send_mail($to,$subject,$body,"From:".$from) ) echo "true"; else echo "false"; }

    • ベストアンサー
    • PHP
  • mb_send_mailについて

    こんにちは。現在phpの勉強中で、まだローカルテスト環境でしか動かしたことのない者です。今回もローカルテスト環境なんですが、いずれアンケートフォームのようなものを作りたくて、ある書籍を参考に、自分宛にメールを送ろうとしました。 コードの内容は、最初に表示する画面の「mail_input.php」が、 <html> <head> <title>メール送信</title> </head> <body> <h1 style="background:#cccccc"> メール送信</h1> <form method="POST" action="sendmail.php"> <input type="hidden" name="_email" value="ここに自分のメールアドレスを入れました" /> <input type="hidden" name="_subject" value="自分宛てメール" /> <input type="hidden" name="_result" value="<?php print($_SERVER['PHP_SELF']);?>" /> <table border="0"> <tr> <th align="right">名前:</th> <td><input type="text" name="name" size="20" maxlength="30" /></td> </tr><tr> <th align="right">E-Mail:</th> <td><input type="text" name="_from" size="50" maxlength="255" /></td> </tr><tr> <th align="right" valign="top">自由記入欄:</th> <td><textarea name="memo" cols="50" rows="5"></textarea></td> </tr> </table> <input type="submit" value="送信" /> <input type="reset" value="クリア" /> </form> </body> </html> で、メールを送るプログラムの「sendmail.php」が、 <?php $header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion(); $body="■■".$_POST['_subject']."■■\n\n"; foreach($_POST as $key=>$value){ if(!strstr($key,"_")){ $body.="[".$key."]".$value."\r\n"; } } $kekka=mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info); if($kekka){ header("Location: ".$_POST['_result']); } else{ print "送信失敗"; } ?> です(どちらも文字コードはUTF-8で改行コードはLFです)。 これを動かしたら、 Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 451 See http://pobox.com/~djb/docs/smtplf.html. in C:\xampp\htdocs\Mysite\lesson\php10\day04-1\sendmail.php on line 9 送信失敗 と表示され、メールも受信できませんでした。 php.iniの内容は、 [mail function] ; For Win32 only. SMTP = smtp.eonet.ne.jp smtp_port = 25 ; For Win32 only. sendmail_from = ここに自分のメールアドレスをいれました ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" で、windowsメールのツールメニューのアカウント→プロパティ→サーバーのところの送信メール(SMTP)(U)のところは、smtp.eonet.ne.jpになっています。送信メールサーバーのところは、「このサーバーは認証が必要」にチェックを入れています。詳細設定の、サーバーのポート番号のことろの、送信メール(SMTP)(O)のところは25にしています。 こちらの環境は、windows vista、xampp1.6.5、php5.2.5で、メールソフトはwindows mailです。加入しているプロバイダはeonet(イオネット)です。コードはサンプルコードをちょっと変えた程度のものなので、たぶんphp.iniの設定やwindowsメールの設定が悪いのだろうと思い、windowsメールの設定のことをイオネットに問い合わせたところ、phpとかそういったことへの質問は対応しかねますとのことでした(対応した方はphpという単語自体を知りませんでした)。 php.iniの[mail function]のところで、 ; For Win32 only. SMTP = smtp.eonet.ne.jp smtp_port = 587 にして、windowsメールの詳細設定の、サーバーのポート番号のことろの、送信メール(SMTP)(O)のところを587にしたり、その他いろいろやってみましたが、ダメでした。ただメールを自分宛に送るだけなので、おそらくとても初歩的なところでつまずいているんでしょうが(考え方が根本的にズレてるような気もします)、解決方法が見つかりません。どなたかアドバイスいただけませんか。イオネットの方だと非常にありがたいです。

    • ベストアンサー
    • PHP
  • mb_send_mail()に関しまして

    初めて投稿させて頂きます。 PHPを触り始めて間もない者ですが、よろしくお願い致します。 現在、PHPの勉強を兼ねまして空メールを送るプログラムを作成しております。 フォームにボタンを1つ設け、そのボタンを押下すると指定のあて先に空メールを送るという簡単なものです。 【html内のボタンの設定】 <form name="top" method="post" action="a.php"> <input type="submit" value="空メールを送る"/> </form> 【a.php(正しく送れたかを知るためにメッセージを表示するようにしてあります)】 <html> <head> PHPメールテスト送信 </head> <body> <? $address = '送信先メールアドレス'; $subject = ''; $message = 'PHPからのテストメール'; $header = "Content-Type: text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address,$subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header))←エラー行 { print("送信成功!!"); } else { print("エラー:送信失敗!!"); } ?> </body> </html> このプログラムを実行すると以下のエラーが発生します。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\xampp\htdocs\top.php on line 15 参考書を見ながらプログラムを作成したのですが、記述、もしくは設定が関係しているのでしょうか。 分かる方には非常にくだらないことかもしれませんが、ご教授お願い致します。

    • 締切済み
    • PHP
  • <a href=

    <a href="mailto:<%= mailaddress %>?subject=<%= name %>様ありがとうございます&body=<%= password1 %>"><%= mailaddress %></a> と書いた場合メールソフトが起動して メールが送信されるのですがこれを書いたメール アドレスに自動的に送信することはできませんか?

    • ベストアンサー
    • HTML