sendmailコマンドを使ったメールでのチケット登録について

225 views
Skip to first unread message

Hiroya Watanabe

unread,
Jan 9, 2018, 11:27:10 AM1/9/18
to Redmine Users (japanese)
お世話になります。渡辺と申します。

Perl スクリプトで sendmail コマンドを利用してメールによるチケット登録をしようとしていま
す。
user_hoge 宛にメールを送信し、aliasesでチケット作成プロラムにパイプで渡しています。

チケット登録自体はされます。件名も問題なくチケット登録され、メール本文で指定したプロジェクトにチケットは登録されるのですが、
カスタムフィールドに値が格納されずプロジェクト以外の全ての本文が説明欄に記入されてしまいます。なにか他に必要な手順があるのでしょうか。
お気づきの点がありましたらご教授いただけますと幸いです。(sedmailコマンドでは難しいでしょうか)

■環境
CentOS 7.4.1708(Core)
Redmine version:3.4.2 stable
Ruby: 2.4.1-p111 (rbenvでインストール)
MariaDB

■/etc/aliases
user_hoge:"|/root/.rbenv/shims/ruby /var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb --allow-override=priority,tracker -u http://hogehoge.com -k hogehogehoge"

■perlスクリプト
#メールを送信する関数部分
sub sendmail_func
{
    my ($subject, $body) = @_;
    open(MAIL, "| /usr/sbin/sendmail -t $MAIL_TO") or die("error:$!");
    print MAIL "To: $MAIL_TO\n";
    print MAIL "From: $MAIL_FROM\n";
    print MAIL "Subject: $subject\n";
    print MAIL "\n";
    print MAIL "$body\n";
    close(MAIL);
}

#本文($body)
my $body="Project: $project\n".
            "custom_field1: $ custom_field1 \n".
            "custom_field2: $ custom_field2 \n".
            "custom_field3: $ custom_field3 \n";

アドバイス頂けますと幸いです。

Niimi Makoto

unread,
Jan 14, 2018, 11:01:30 PM1/14/18
to redmine-...@googlegroups.com
print MAIL "\n"; があるから、それ以降は本文とみなされています。
Headerに入れたいなら、削除しましょう。

2018年1月10日 1:27 Hiroya Watanabe <sti...@gmail.com>:
> --
> このメールは Google グループのグループ「Redmine Users (japanese)」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> redmine-users-...@googlegroups.com にメールを送信してください。
> このグループに投稿するには redmine-...@googlegroups.com にメールを送信してください。
> https://groups.google.com/group/redmine-users-ja からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Hiroya Watanabe

unread,
Jan 16, 2018, 9:00:51 AM1/16/18
to Redmine Users (japanese)
お世話になっております。渡辺です

本件、ひとまず、カスタムフィールドの一部はチケット登録できるようになりました。
カスタムフィールド名を直接override するとうまくいきました。
#Sendmail のヘッダーのアドバイスいただきありがとうございます。
■/etc/aliases(修正後)
user_hoge:"|/root/.rbenv/shims/ruby /var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb --allow-override=priority,tracker custom_field1, custom_field2, custom_field2  -u http://hogehoge.com -k hogehogehoge"
#aliases ではカスタムフィールドの項目名に存在するスペースはアンダースコアに置き換えて入力しています。(スクリプトに書き換えろとの記載がありました)

しかし以下の2点の問題が残っています。
①カスタムフィールドの内容が日本語だと登録に失敗する。
→redmineのログには以下が出力されます
MailHandler: missing information from Anonymous: Unable to determine target project
Completed 422 Unprocessable Entity in 6ms (ActiveRecord: 0.9ms)
#sendmail のヘッダーで文字コード等を変えてみる等試してみましたがだめでした
②カスタムフィールドの項目名に'や-など記号が入っているとチケット登録に失敗する。
 
最悪は、カスタムフィールド項目名を変更する必要があると考えております。

#redmine 2.6.1 ではうまくいってました。(OS 等は違いますが...)

早急に解決する必要があり、何卒よろしくお願いいたします。

以上、よろしくお願いいたします。

2018年1月10日水曜日 1時27分10秒 UTC+9 Hiroya Watanabe:
Reply all
Reply to author
Forward
0 new messages