gpt4 book ai didi

objective-c - 我的错误 MIME : The Code is Obj-C, 但问题不是特定于语言的 - 非常棘手

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:43 25 4
gpt4 key购买 nike

我正在使用以下字典创建 MIME header ,以发送附有文本文件的电子邮件。它在代码下方生成电子邮件。为什么一切都是乱码?那里有 MIME 专家吗?

此外,答案并不像您对它进行 Base64 编码那么简单。如果我将它从“内联”更改为“附件”,则电子邮件附件在发送到 Web Gmail 时已损坏,但文件正常并且可以通过 GMail 打开,但在 Mac 上由 Mail 打开。此外,如果文本文件非常小,它在 GMail 上也能正常工作。

这是这个未回答问题的先前表述。我在此示例中稍微更改了代码,以避免我认为可能是转移注意力的内容:GMail won't open .txt attachment created by iPhone App, Depending on Size - I think There's a Bug in my MIME

NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:
@"text/plain", kSKPSMTPPartContentTypeKey,
@"Hey Kevin,\nHere are some gps readings for you to filter.\nLove,\nTrailBehind", kSKPSMTPPartMessageKey,
@"8bit", kSKPSMTPPartContentTransferEncodingKey, nil];

NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *gpsFilePath = [[@"/tracks/" stringByAppendingString:[track title]] stringByAppendingString:@"/accelerometerReadings.txt"];
gpsFilePath = [[paths objectAtIndex:0] stringByAppendingString: gpsFilePath];

NSData *fileData = [NSData dataWithContentsOfFile:gpsFilePath];
NSDictionary *attached = [NSDictionary dictionaryWithObjectsAndKeys:
@"text/plain;", kSKPSMTPPartContentTypeKey,
@"inline;\r\tfilename=\"accelerometerReadings.txt\"", kSKPSMTPPartContentDispositionKey,
[fileData encodeBase64ForData], kSKPSMTPPartMessageKey,
@"base64", kSKPSMTPPartContentTransferEncodingKey, nil];

testMsg.parts = [NSArray arrayWithObjects:plainPart, attached, nil];
[testMsg send];

电子邮件

--SKPSMTPMessage--Separator--Delimiter
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

Hey Kevin,
Here are some gps readings for you to filter.
Love,
TrailBehind
--SKPSMTPMessage--Separator--Delimiter
Content-Disposition: attachment; filename="track.gpx"
Content-Type: text/plain;
Content-Transfer-Encoding: base64

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/PjxncHggeG1sbnM9Imh0dHA6Ly93d3cudG9wb2dyYWZpeC5jb20vR1BYLzEvMSIgY3JlYXRvcj0iVHJhaWxCZWhpbmQiIHZlcnNpb249IjEuMSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnRvcG9ncmFmaXguY29tL0dQWC8xLzEgaHR0cDovL3d3dy50b3BvZ3JhZml4LmNvbS9HUFgvMS8xL2dweC54eHNkIj4KICA8dHJrPgogICAgPG5hbWU+TXkgVHJhY2sgLSAwNy0yMi0yMDA5IDA2OjQxUE08L25hbWU+CiAgICA8dHJrc2VnPgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTcxNjAiIGxvbj0iLTEyMC4xNjg4NTgiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTcwNzMiIGxvbj0iLTEyMC4xNjg4MTQiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTcwNzMiIGxvbj0iLTEyMC4xNjg4MTQiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTcwNDciIGxvbj0iLTEyMC4xNjg3NjYiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTcwMTYiIGxvbj0iLTEyMC4xNjg3MTQiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY5NjEiIGxvbj0iLTEyMC4xNjg2NDMiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY5NDAiIGxvbj0iLTEyMC4xN!
jg2MTgiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY4OTIiIGxvbj0iLTEyMC4xNjg1NjUiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY4MjkiIGxvbj0iLTEyMC4xNjg0NzAiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY3NjUiIGxvbj0iLTEyMC4xNjgzODciPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY3MDgiIGxvbj0iLTEyMC4xNjgyNjAiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY2OTAiIGxvbj0iLTEyMC4xNjgyMDYiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY2NTkiIGxvbj0iLTEyMC4xNjgxNjEiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY2NDciIGxvbj0iLTEyMC4xNjgxNDkiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY1OTciIGxvbj0iLTEyMC4xNjgwNjciPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY1MzQiIGxvbj0iLTEyMC4xNjc5NDIiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY1MzQiIGxvbj0iLTEyMC4xNjc5NDIiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY1MDEiIGxvbj0iLTEyMC4xNjc4OTYiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY0MjciIGxvbj0iLTEyMC4xNjc4NDUiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTY0MDAiIGxvbj0iLTEyMC4xN!
jc3ODUiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYzNjMiIGxvbj0iLTE
yMC4xNjc3NDUiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYzMDkiIGxvbj0iLTEyMC4xNjc3MTUiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMzkiIGxvbj0iLTEyMC4xNjc2MjEiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMzkiIGxvbj0iLTEyMC4xNjc2MjEiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMTQiIGxvbj0iLTEyMC4xNjc1MDkiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMDgiIGxvbj0iLTEyMC4xNjczNjgiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMTUiIGxvbj0iLTEyMC4xNjcyOTciPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYyMTUiIGxvbj0iLTEyMC4xNjcyOTciPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYxOTQiIGxvbj0iLTEyMC4xNjcxODEiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYwNzciIGxvbj0iLTEyMC4xNjcyNTMiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTYwMzIiIGxvbj0iLTEyMC4xNjcyMzQiPjwvdHJrcHQ+CgogICAgICA8dHJrcHQgbGF0PSIzOS4zMTU5ODMiIGxvbj0iLTEyMC4xNjcxOTEiPjwvdHJrcHQ+CgogICAgPC90cmtzZWc+CiAgPC90cms+CjwvZ3B4Pgo=
--SKPSMTPMessage--Separator--Delimiter

--SKPSMTPMessage--Separator--Delimiter--

最佳答案

如果那是你的 Base64 输出的样子,那就错了;它应该被包装成 76 个字符的行以用于电子邮件。此外,它看起来像是添加了一些空格(可能是因为它没有被包裹)

此外,您是否正在设置内容传输编码?我看到设置内容类型和内容处置的行,但没有内容传输编码,您将获得默认值(7 位)...这将只显示编码的 MIME。这就是正在发生的事情。

我建议根据 RFC 2045 检查您的原始邮件输出(例如,gmail 中的“显示原始邮件”)特别是 §6 和 §6.8。

如果这不能解决您的问题,请编辑以包含原始消息。

关于objective-c - 我的错误 MIME : The Code is Obj-C, 但问题不是特定于语言的 - 非常棘手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com