HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1124
kintaメールヘッダーにCCを追記することが出来ません2解決


kinta

リンク

2017/11/24(Fri) 12:21:37|NO.81897

現在、hspinet.asを使用してメール送信するスクリプトを作ろうとしてます。
まずはサンプルに手を加えて送信できる状態になったのですが、どうしてもCCをヘッダーに載せることが出来ません。
ヘッダーを見るとCc:0となってしまうのです。jisにエンコードしたりしたのですが状況は変わりません。
なぜCc:は送れるのにアドレスが送れないのかわからないんです。

ご教授お願いします。

サンプルに手を加えたスクリプトを添付いたします。

#include "hspinet.as"

;
; メール送信サンプル
; ※すべてのメールサーバーに対応しているわけではありません
; ※メール本文はSJIS文字列として送信されます
;
#module
#include "hspsock.as"
#define SVR_TIMEOUT 100 ; タイムアウト時間(1/10sec)

#deffunc svrwait
sdim reslog,1024
repeat SVR_TIMEOUT
sockcheck 0
if stat=0 : break
await 10
loop
sockget reslog,1024,0
rescode=strmid(reslog,0,3)
return

#deffunc setmail str _p1, int _p2, str _p3, str _p4

; メールサーバーの設定(メールを送る前に設定してください)
; setmail "サーバーアドレス", ポート番号, "認証ユーザー名", "認証パスワード"
;
svradr = _p1
svrport = _p2
svruser = _p3
svrpass = _p4
return

#deffunc sendmail str adrfrom, str adrto, str subject, str txdata

; メール送信
; sendmail "送信元アドレス","送信先アドレス","タイトル","本文"
; (statが0ならば送信成功、1以上ならばエラーが発生しています)
; (先にsetmailでサーバーの設定を行なっておいてください)
;
sockopen 0,svradr,svrport
svrwait
if rescode!="220" : return 1
sockput "ehlo "+svradr+"\n",0
svrwait
if rescode!="250" : return 2
sockput "auth login\n",0
svrwait
if rescode!="334" : return 3
srcbuf=svruser
b64encode@ res,srcbuf
sockput res+"\n",0
svrwait
if rescode!="334" : return 4
srcbuf=svrpass
b64encode@ res,srcbuf
sockput res+"\n",0
svrwait
if rescode!="235" : return 5

sockput "mail from:"+adrfrom+"\n",0
svrwait
if rescode!="250" : return 6
sockput "rcpt to:"+adrto+"\n",0
svrwait
if rescode!="250" : return 7

sockput "data\n",0
svrwait
if rescode!="354" : return 8

srcbuf=subject
b64encode@ res,srcbuf
sockput "From:"+adrfrom+"\nTo:"+adrto+"\nCc:"+cc1+"\nMIME-Version: 1.0\nContent-Type: text/plain; charset=ISO-2022-JP\nSubject:=?ISO-2022-JP?B?"+res+"?=\n\n"+txdata+"\n.\n",0
svrwait
if rescode!="250" : return 9

sockput "quit",0
return 0

#global

; メール送信テスト
;
syscolor 15
boxf
color 0,0,0

sdim m_adr,256
sdim m_user,256
sdim m_pass,256
sdim m_from,256
sdim m_to,256
sdim m_title,256
sdim m_text,$4000
sdim cc,256
m_port=587
m_adr="abc.jp"
m_from="1234@yafoo.com"
m_to="234@test.jp"
m_title="メール送信テストです"
nkfcnv m_title,m_title,"j",-1,250
m_text="本文です。"
nkfcnv m_text,m_text,"j",-1,125
m_user="test@test.jp"
m_pass="ken3192"
cc="test@yafoo.jp"
sdim cc1,125
nkfcnv cc1,cc,"j",-1,125
objsize 320,24
mes "SMTPサーバー"
input m_adr
mes "SMTPポート"
input m_port
mes "認証ユーザー名"
input m_user
mes "認証パスワード"
input m_pass
mes "送信元アドレス"
input m_from
mes "送信先アドレス"
input m_to
mes "タイトル"
input m_title
mes "本文"
mesbox m_text,640,160

pos 490,10:objsize 140,140
button "メール送信",*go
stop

*go
setmail m_adr, m_port, m_user, m_pass
sendmail m_from, m_to, m_title, m_text
ires=stat
if ires=0 {
dialog "メールを送信しました。"
} else {
dialog "エラーが発生しました。(エラー="+res+")"
}
stop



この記事に返信する


沢渡

リンク

2017/11/24(Fri) 12:53:57|NO.81898

グローバル空間にある文字変数cc1の中身を、モジュールの中からは認識できないからです。
sendmail命令を、ccの内容も受け渡すような仕様にすれば良いのではないでしょうか。



kinta

リンク

2017/11/24(Fri) 19:09:58|NO.81900

ご親切にありがとうございました。基本中の基本でした。恥ずかしい限りです。即解決しました。



ONION software Copyright 1997-2018(c) All rights reserved.