2021年3月15日月曜日

Gmailの「メールの配信エラー」でまさかの原因

 メールの配信エラー

[名前] の機能を使用して、別のアドレスまたは別のエイリアスからこのメールを送信しようとしています。
[名前] のアカウントの設定に誤りがあるか、設定が最新の状態ではありません。
設定を確認して、もう一度送信してみてください。

リモート サーバーからの応答:
553 sorry, your envelope sender is in my badmailfrom list (#5.7.1)

Gmailにて、外部SMTPのドメインメールでメールを送信すると上記のエラーメールが返ってきました。
詳細リンクがあったので確認しましたが当てはまるような項目はありませんでした。

ネットで調べてみるといくつかの改善方法が見つかりましたが、どれも効果がありませんでした。
・ポート25でもダメ
・セキュリティなしでもダメ
・登録しなおしてもダメ

そこでメールサーバーのレンタルサーバー側に問い合わせでみたところ、一日の送信上限数を超えているとの回答がありました。
どうやら自分以外の者が使っていたアカウントのパスワードが簡単すぎて乗っ取られ、大量送信に利用されたようです。

当該アカウントのパスワードを変更して、1日経過したら正常に戻りました。

2021年1月19日火曜日

Asterisk 16 + Linphone で複数外線を鳴り分けてみた

Linphoneには複数アカウントを登録することができますが、どのアカウントに着信したかがわかりません。
そこで、着信コンテキストでcalleridを書き換えてみました。

exten => 0300000001,1,Set(CALLERID(number)=会社A ${CALLERID(number)}<#1#${CALLERID(number)}>)

same => n,Dial(SIP/201/${EXTEN},60,rtT))
same => n,Hangup

exten => 0300000002,1,Set(CALLERID(number)=会社B ${CALLERID(number)}<#2#${CALLERID(number)}>)
same => n,Dial(SIP/201/${EXTEN},60,rtT))
same => n,Hangup

こうすると、それぞれ「会社A 発信者番号」「会社B 発信者番号」と表示されるのでどこにかかってきたかが一目でわかります。
折り返す時は<>の中が使われますので、それぞれ「#1#発信者番号」「#2#発信者番号」へ発信されます。
半角スペースは使えないのでスペースは必ず全角で。

そして、発信時には追加したプレフィックス「#1#」「#2#」を判断して発信者CALLERIDを設定します。

exten => _#1#,1,Set(CALLERID(number)=0300000001)
same => n,Dial(SIP/${EXTEN}@pstn,60,rtT))
same => n,Hangup

exten => _#2#,1,Set(CALLERID(number)=0300000002)
same => n,Dial(SIP/${EXTEN}@pstn,60,rtT))
same => n,Hangup


2021年1月14日木曜日

MySQLで Unable to save result set in エラー修復

MySQLにて、

SELECT * FROM table_name ORDER BY date DESC LIMIT 1;

というクエリを実行すると、

Warning: mysql_query() [function.mysql-query]: Unable to save result set in

となって false が返ってきました。

あれ?メモリ不足なの?ってことで php.ini の memory_limit を上げてみたけれど改善なし。
そりゃそうだよね、だって LIMIT 1 しているんだからレスポンスが大きいわけない。
試しに DESC を抜いてみたらなぜかエラーにならない。

SELECT * FROM table_name ORDER BY date LIMIT 1;

こういう訳の分からない挙動の時は大概DBがぶっ壊れてます。
ということで、

REPAIR TABLE table_name;

改善されました。